[英]Rails 3 Model associations with has_many, belongs_to and :through
我正在嘗試為我正在從事的一個小型項目建立幾個模型關聯。 我是Rails的新手,所以這一切令我感到困惑。
我的用例非常簡單。 我有一個體育聯賽 , 有多個 分區 。 每個部門 都有許多 團隊 。 每個隊 都有一名 隊長,並有許多 隊員 。
現在,玩家和隊長都由班級用戶代表。 唯一使他們與眾不同的是他們的角色。 我正在使用CanCan來管理角色。
現在是我的模型以及如何定義關聯:
class Division < ActiveRecord::Base
belongs_to :league
has_many :teams
end
class League < ActiveRecord::Base
has_many :divisions
end
class Team < ActiveRecord::Base
belongs_to :division
accepts_nested_attributes_for :division
has_one :captain, :class_name => "User"
accepts_nested_attributes_for :captain
has_many :rosters
has_many :players, :through => :rosters, :source => :user
accepts_nested_attributes_for :players
validates_presence_of :name
validates_uniqueness_of :name
end
class User < ActiveRecord::Base
has_many :authentications
has_many :rosters
has_many :teams, :through => :rosters
belongs_to :team
end
任何幫助將不勝感激。
這個定義對我來說似乎還可以。 (當然)還有其他方法可以做到這一點,但是這似乎還可以。
這種類型取決於您的UI。 隊長應該足夠簡單-執行collection_select
並將其分配給captain
屬性。
玩家比較棘手。 通常的方法是(與您一樣)使用帶有html數組name
(例如team[player_id][]
)的collection_select
,並且在您的情況下,我想您每個團隊都有一定數量的球員,因此您只需顯示它次(如果沒有,您可以使用javascript為用戶克隆它)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.