我有三张桌子:玩家,游戏,隐藏
这是播放器模型
has_many :hides, :foreign_key=> "hider_id",
:dependent => :destroy
has_many :hidees, :through => :hides
以下是属于隐藏模型的属性。
attr_accessible :hidee_id
belongs_to :hider, :class_name => "Player"
belongs_to :hidee, :class_name => "Game"
validates :hider_id, :presence => true
validates :hidee_id, :presence => true
以下是游戏模型:
has_many :reverse_hides, :foreign_key => "hidee_id",
:class_name => "Hide",
:dependent => :destroy
has_many :hiders, :through => :reverse_hides
我想编写一个可以返回当前玩家隐藏的所有游戏的查询。
目前我有:Game.joins(:hiders)
返回所有被标记为隐藏的游戏,我需要做些什么来查找仅由特定玩家隐藏的游戏...例如where('Player.id =?'hider_id)< - 这似乎不起作用。
感谢您的帮助和时间!
答案 0 :(得分:0)
当然,这并没有利用太多的Rails魔法,但如果我理解你的模型,它应该有效:
Game.joins('JOIN hides ON hides.hidee_id = games.id').where('hides.hider_id = ?', player.id)