繁体   English   中英

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

[英]Why does my .where statement does not work with a join in ActiveRecord?

在我的应用中,我正在查询以确定游戏是否喜欢,

@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个用户都必须喜欢该游戏

第一个where(:game_id => @ game.id)虽然返回多个game.id的结果,却无法正常工作,我该如何解决?

如果您已像下面这样设置了两个模型之间的关系:

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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM