使用模型关联:在rails中命令查找

时间:2011-01-30 08:00:15

标签: ruby-on-rails activerecord find

有没有办法在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,但我不确定这将如何应用。

1 个答案:

答案 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))')