Rails 3在每条记录中专门使用belongs_to不同的表

时间:2011-06-15 22:12:41

标签: ruby-on-rails ruby-on-rails-3 rails-models

我有一些这样的模型:

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对其进行建模?

1 个答案:

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