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 回答