在我的模型中,我有这种方法,它将一个对象的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