我在 Rails 应用程序中有三个模型:Game代表正在玩的游戏的一个实例。Player代表游戏参与者的一个实例。User代表可以参与游戏的注册人。
每个Game可以有很多Players,每个User可以有很多Players(一个人可以同时参与多个游戏);但每一个Player都恰好在一个之中Game,并且代表着一个User。因此,我目前的关系如下。
class Game
has_many :players
end
class User
has_many :players
end
class Player
belongs_to :game
belongs_to :user
end
...自然players表有game_id和user_id列,但games没有users外键。
我还想代表每个Game人都有很多Users演奏的事实;每个User人都有很多Games他们正在玩的东西。我该怎么做呢?补充就够了吗
class Game
has_many :users, :through => :players
end
class User
has_many :games, :through => :players
end