【问题标题】:Rails query to find other likes based on categoryRails 查询以根据类别查找其他喜欢
【发布时间】:2010-06-17 15:50:58
【问题描述】:

我需要执行以下操作:

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

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

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

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

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

    这样的事情怎么样:

    @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)]
    

    【讨论】:

    • 嗨,马克。感谢你的回答。这就是我正在做的事情,但如果你关注 20 个类别,它就会变得非常低效。这将是两个查询 x 类别。
    • 嗨,米克。我希望我可以测试一下,因为我不确定,但最后一次编辑怎么样?
    猜你喜欢
    • 2011-11-17
    • 1970-01-01
    • 2012-12-23
    • 2012-09-18
    • 1970-01-01
    • 2014-03-30
    • 2010-12-08
    • 2017-02-21
    • 1970-01-01
    相关资源
    最近更新 更多