按字母顺序按自定义模型方法排序集合对象

时间:2013-08-25 20:02:40

标签: ruby-on-rails sorting methods collections models

我的User模型中有一个名为display_name的方法。在我的控制器中,我想按字母顺序按Userdisplay_name个对象进行排序。 display_name返回一个字符串,我该怎么做?

用户

  def display_name
      if !addressbook.b_company.nil?
        if addressbook.b_company.downcase[0..3] == "the "
                addressbook.b_company[4..-1]
        else
                addressbook.b_company
        end
      else
          "#{addressbook.b_lastname}, #{addressbook.b_firstname}"
      end
  end

1 个答案:

答案 0 :(得分:1)

使用sort_by并传递方法:

@users.sort_by(&:display_name).each do |user|
  # your code here
end