有没有办法在Rails查找的命令部分中使用模型关联?例如,我有以下情况:
User
has_many :lists
end
#fields include: count is an int, best is a boolean and only only list has best equal true
List
belongs_to :user
end
我想执行一个按用户最佳列表的计数值对用户进行排序的查找。我知道这完全不起作用,但也许它有助于实现我的目标:
User.find_all_by_id_and_profile(user_ids, true, :order => "user.lists.find_by_best(true).count")
我读过有关使用:include,但我不确定这将如何应用。
答案 0 :(得分:1)
因此,如果我理解正确,您会尝试从列表的最佳属性计数中对用户进行排序。我想你必须使用子查询。
User.where("users.id IN (?) AND profile=true", user_ids).order(
'(SELECT COUNT(*) FROM lists WHERE (best=true) AND (users.id=lists.user_id))')