所以我有以下几个表
class Game
belongs_to :player0, :class => "Player"
belongs_to :player1, :class => "Player"
end
class Player
belongs_to :user
end
class User
#has a field called race
end现在,我需要一个查询来执行以下操作
查找player0.user.race为"x“且player1.user.race为"y”或player0.user.race为"y“且player1.user.race为"x”的所有游戏。
我刚开始使用Rails3,我可以很容易地自己用sql编写查询,但我更愿意学习arel的方法。
发布于 2011-11-21 17:03:57
使用meta_where gem:
Game.joins(:player0, :player1).where((:player0 => {:user => {:race => 'x'} | {:race => 'y'}}) | (:player1 => {:user => {:race => 'x'} | {:race => 'y'}}))使用to_sql方法进行检查。
https://stackoverflow.com/questions/8208808
复制相似问题