我有一个User
模型,其name
属性。在我的PagesController
中,我想设置一个等于所有User对象的实例变量,但我想根据姓氏对它们进行排序。我知道我能做到:
@sortedusers = User.order(:name => :asc)
根据用户name
属性对用户进行排序,但如何根据姓氏进行操作? (即如何根据name
属性的最后一个单词订购用户?
感谢。
答案 0 :(得分:1)
在模型中定义虚拟属性姓氏
def last_name
name.split(' ').last
end
然后
User.order(:last_name => :asc)
答案 1 :(得分:0)
我建议单独存储用户的姓氏。除此之外,您可以使用sort_by,如下所示:
items.sort_by! { |a| a.split(' ') }
或类似的东西。请注意,这很可能不能直接使用,它只是为了指向正确的方向,因为我的大部分答案都是。