[英]SQL query for joining data from three tables with reverse relationships
我有三個表:玩家,游戲,隱藏
這是播放器模型
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)<-這似乎沒有用。
感謝您的幫助和時間!
當然,這並不能充分利用Rails的魔力,但是如果我正確地理解了您的模型,它應該可以工作:
Game.joins('JOIN hides ON hides.hidee_id = games.id').where('hides.hider_id = ?', player.id)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.