在我的模型中,我有這種方法,它將一個對象的last_name和first_name列並將它們連接成一個字符串。在範圍中按模型方法排序
def name
last_name + " " + first_name
end
我想定義一個範圍,可以通過該方法對我的對象進行排序。如何使用我的方法去做這件事?我不想定義一些按姓氏排序的範圍,然後按範圍中的first_name定義(如果甚至可能的話)。我的理解是,你只能在rails框架中的實際列上作用域?那是不正確的?
以下是我寫的內容,但顯然不適用,因爲我的AdminUser
表中沒有name
字段。不知道爲什麼第二個不起作用,但我猜:name_field
將無法正常工作,因爲它實際上不是作爲列的模型/數據庫。
scope :sorted, lambda { order("name ASC")}
scope :sorted, lambda { :name_field => name, order("name_field ASC")}
看到這個問題https://stackoverflow.com/questions/18295778/rails-4-order-by-virtual-attribute – fangxing