我在Rails應用程序中有三個模型:Game
表示正在玩的遊戲的一個實例。 Player
代表遊戲中的參與者的實例。 User
代表可以參與遊戲的註冊人員。Rails:雙向has_many:通過關係
每個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
不敢相信我之前沒有遇到過指南!我基本上從「敏捷網頁開發人員」開始工作,其中提到了文章 - >部分 - >段落案例,但並沒有真正涵蓋「真正中間人」的HABTM案例。 – Chowlett 2010-05-24 15:03:23