2014-01-06 28 views
0

我有一個User模型,具有name屬性。在我的PagesController中,我想設置一個等於所有User對象的實例變量,但我想根據姓氏對它們進行排序。我知道我可以做:Rails 4:基於* name *屬性中的* last word *排序用戶?

@sortedusers = User.order(:name => :asc)

訂購基於其name屬性的用戶,但我怎麼做它的基礎上的姓? (即如何訂購基礎上,最後一句話:當用戶name屬性

感謝。

回答

0

我建議單獨存儲用戶的姓氏。除非,你可以使用sort_by,像這樣:。 items.sort_by! { |a| a.split(' ') }或沿着這些線路的東西需要注意,這很可能是不能用直線,它只是爲了你指出正確的方向,因爲我的大部分答案都是

1

定義虛擬屬性的姓氏中您的型號

def last_name 
    name.split(' ').last 
end 

然後

User.order(:last_name => :asc) 
+0

我不認爲數據庫的查詢命令可以用虛擬屬性來使用,這就是爲什麼@ HD1建議sort_by改用並單獨存儲的名稱。 – acadavid

相關問題