【发布时间】:2017-05-18 09:12:19
【问题描述】:
在我的模型中,我有一个方法,它获取对象的 last_name 和 first_name 列并将它们连接成一个字符串。
def name
last_name + " " + first_name
end
我想定义一个可以通过该方法对我的对象进行排序的范围。使用我的方法如何去做呢?我不想定义一些首先按 last_name 排序的范围,然后在范围内按 first_name 排序(如果可能的话)。我的理解是您只能在 rails 框架中的实际列范围内?不对吗?
这是我写的,但显然两者都不起作用,因为我的 AdminUser 表中没有 name 字段。不知道为什么第二个不起作用,但我猜:name_field 不起作用,因为它实际上不在模型/数据库中作为列。
scope :sorted, lambda { order("name ASC")}
scope :sorted, lambda { :name_field => name, order("name_field ASC")}
【问题讨论】:
标签: ruby-on-rails