订购一个ActiveRecord关系对象



我有一个名为contact的ActiveRecord对象。它有一个叫做profiles的关系。这些配置文件有一个url属性。配置文件应按url按字母顺序排序。我试过sort_by以及order,但我得到这个错误:

contact.profiles.sort_by! { |profile| profile.url }
undefined method `sort_by!' for #<Profile::ActiveRecord_Associations_CollectionProxy:0x00000105d6d430>

最好的方法是什么?我使用的是Rails v4.1.0

根据Profileurl属性使用顺序查询方法对概要文件记录进行排序

contact.profiles.order(url: :desc) ## sort in descending order

对于升序,可以指定asc而不是desc

第二,如果您希望检索概要文件记录总是按url排序的,那么将Contact模型更新为:
class Contact < ActiveRecord::Base
  # ...
  has_many :profiles, -> { order url: :desc } ## change order as per your requirement to asc / desc
  # ...
end
在此之后,contact.profiles总是导致基于url的排序配置文件。

相关内容

最新更新