我在Rails 4工作,有两个相关模型:
帐户模式
has_many :agent_recalls, primary_key: "id", :foreign_key => "pickup_agent_id", class_name: "Booking"
因此,像Account.find(10).agent_recalls
这样的查询会起作用。
我想要做的是按此agent_recalls
关联对整个帐户集合进行排序。
理想情况下,它看起来像(但显然不是):
@agents = Account.where(agent: true).order(:agent_recalls)
问题:按此agent_recall
计数输出有序列表的正确查询是什么?
答案 0 :(得分:0)
要完成您所寻找的目标,您有两个选择:
首先,只有一个查询,但它会暗示一个连接,所以会丢失没有任何agent_recalls的帐户,所以我会放弃这个选项
第二,我认为这个更适合你想要做的事情
Account.find(:all, :conditions => { :agent => true }, :include => :agent_recalls).sort_by {|a| a. agent_recalls.size}
正如您所看到的是查询和ruby之间的混合,希望它有所帮助:)