Rails查询根据类别查找其他喜欢

时间:2010-06-17 15:50:59

标签: ruby-on-rails

我需要做以下事情:

根据您喜欢的类别查找其他类别的人。我有一个喜欢的表,它连接到用户和类别。

我需要进行有效的查询,以找出喜欢给定类别的其他类别。

对此的任何想法将不胜感激。提前致谢。

1 个答案:

答案 0 :(得分:0)

您希望找到拥有当前用户拥有的所有类别的所有用户,然后收集其他人拥有的所有类别,但不包括当前用户拥有的类别。

这样的事情怎么样:

@user_group =  User.find(:select => "count(likes) as count, users.*", 
                          :joins => :likes,
                          :conditions => {:likes => {:category_id => current_user.categories.map(&:category_id).flatten}}
                          :group => "#{('users.id having count = ?', current_user.categories.count)}")
@categories = Categories.find(:joins => :likes, :conditions => ['likes.user_id in ? and id not in ?', @user_group.map(&:id), current_user.categories.map(&:id)]