3

私はこれらのようないくつかのモデルを持っています:

class Alpha < ActiveRecord::Base
 has_many :items 
end    

class Beta < ActiveRecord::Base
 has_many :items
end

class Item < ActiveRecord::Base
 belongs_to :alpha
 belongs_to :beta
end

しかし、各データベース レコードのアイテム モデルが :alpha または :beta のいずれかに属している必要がありますが、両方には属していません。Rails 3でそれを行う良い方法はありますか? または、代わりに AlphaItems と BetaItems でモデル化する必要がありますか?

4

1 に答える 1

8

おそらく、これにはポリモーフィック アソシエーションを使用する必要があります。詳細 - http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

class Alpha < ActiveRecord::Base
  has_many :items, :as => :itemable
end    

class Beta < ActiveRecord::Base
  has_many :items, :as => :itemable
end

class Item < ActiveRecord::Base
  belongs_to :itemable, :polymorphic => true
end
于 2011-06-17T16:33:09.640 に答える