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

dot*_*ree 3 ruby-on-rails rails-models ruby-on-rails-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
Run Code Online (Sandbox Code Playgroud)

但我希望每个数据库记录中的Item模型属于:alpha或a:beta但不是两者.在Rails 3中做任何好方法吗?或者我应该使用AlphaItems和BetaItems对其进行建模?

Dog*_*ert 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
Run Code Online (Sandbox Code Playgroud)