Nik*_*iko 2 activerecord ruby-on-rails
我有一个名为的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>
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?我正在使用Rails v4.1.0.
使用订单查询方法根据url属性对配置文件记录进行排序Profile
contact.profiles.order(url: :desc) ## sort in descending order
Run Code Online (Sandbox Code Playgroud)
对于升序,您可以指定asc而不是desc.
UPDATE
在第二个注释中,如果您希望检索始终排序的配置文件记录,url则将Contact模型更新为:
class Contact < ActiveRecord::Base
# ...
has_many :profiles, -> { order url: :desc } ## change order as per your requirement to asc / desc
# ...
end
Run Code Online (Sandbox Code Playgroud)
在此之后,contact.profiles将总是导致基于的排序配置文件url.
| 归档时间: |
|
| 查看次数: |
2141 次 |
| 最近记录: |