我有一些这样的模型:
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
但我希望每个数据库记录中的Item模型属于:alpha或a:beta但不是两者。在Rails 3中做任何好方法吗?或者我应该使用AlphaItems和BetaItems对其进行建模?
答案 0 :(得分: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