我有一个名为的 ActiveRecord 对象contact
。它有一个关系叫做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。
Use 订单查询方法 http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-order用于对配置文件记录进行排序url
的属性Profile
contact.profiles.order(url: :desc) ## sort in descending order
对于升序,您可以指定asc
代替desc
.
UPDATE
第二点,如果您想检索个人资料记录always排序url
然后更新Contact
模型为:
class Contact < ActiveRecord::Base
# ...
has_many :profiles, -> { order url: :desc } ## change order as per your requirement to asc / desc
# ...
end
在这之后,contact.profiles
would always结果基于排序的配置文件url
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)