为什么我的.where语句不适用于ActiveRecord中的连接?

时间:2012-09-01 11:31:08

标签: ruby-on-rails ruby-on-rails-3 activerecord where-clause

在我的应用程序中我有一个查询来确定游戏是否喜欢,

@games = Like.select('l.*').where(:game_id => @game.id).joins('join likes l on likes.user_id=l.likes and l.user_id=likes.likes')

游戏需要有一定的ID,而且2个用户都必须喜欢游戏

第一个(:game_id => @ game.id)虽然从多个game.id返回结果但不起作用。我该如何解决?

1 个答案:

答案 0 :(得分:0)

如果你已经建立了这两个模型之间的关系:

class Game < ActiveRecord::Base
    has_many :likes
end

class Like < ActiveRecord::Base
    belongs_to :game
end

然后在您的控制器中,您只需要:

@game = Game.find_by_id(game.id)
@likes = @game.likes.count

无论如何,在这种情况下,我认为最好的方法可能是使用添加喜欢作为属性并使用counter_cache_column。