這可能不是回答你完全的問題,但如果你只打算有氣墊船我反而成立了協會這樣
class Hovercraft < ActiveRecord::Base
belongs_to :pilot, :class_name => 'Ninja', :foreign_key => 'pilot_id'
belongs_to :copilot, :class_name => 'Ninja', :foreign_key => 'copilot_id'
end
class Ninja < ActiveRecord::Base
has_many :pilotings, :class_name => 'Hovercraft', :foreign_key => 'pilot_id'
has_many :copilotings, :class_name => 'Hovercraft', :foreign_key => 'copilot_id'
end
兩個角色
現在,如果您的角色不止於此,或者您需要更多靈活性,則可以使用第三個模型將它們鏈接在一起。
class Hovercraft < ActiveRecord::Base
has_many :hovercraft_roles
has_many :ninjas, :through => :hovercraft_roles
end
class HovercraftRole < ActiveRecord::Base
belongs_to :hovercraft
belongs_to :ninja
end
class Ninja < ActiveRecord::Base
has_many :hovercraft_roles
has_many :hovercrafts, :through => :hovercraft_roles
end
隨着HovercraftRole
模型表明,如果它是一個「試點」或「副駕駛」角色屬性。
也許這是沒有正確或錯誤答案的那種問題。人們會害怕浪費他們的時間來詳細說明面臨被降低風險的風險的問題......來吧! :) – user202411 2010-04-11 18:39:59