2012-10-18 122 views
1

我有3个型号。 JobsBusinesses,& Categories我应该在这种情况下使用Polymorphic关联吗?

Jobs有很多categories

Businesses有很多categories

Categories有许多jobs

Categories有很多businesses

最适合这种情况的多态关联?


category.rb

class Category < ActiveRecord::Base 
    attr_accessible :name 
    belongs_to :categorised, polymorphic: true 
end 

business.rb

class Business < ActiveRecord::Base 
    has_many :categories, as: :categorised 
end 

job.rb

class Job < ActiveRecord::Base 
    has_many :categories, as: :categorised 
end 
+0

你应该做的多态关联。所有关系的分类模型通常都是相同的。 – emrahbasman

回答

1

我认为这取决于JobBusiness对象之间有多少共同性。如果它们大多具有相同的属性,那么是的,将它们存储在同一个表中可能是有意义的。

但无论哪种情况,您都有多对多的关系:Jobs有很多CategoriesCategories有很多Jobs。这将要求与连接两者的连接表建立:has_and_belongs_to_many关系。

0

我劝你HABTM关系

category.rb

class Category < ActiveRecord::Base 
    attr_accessible :name 
    has_and_belongs_to_many :business 
    has_and_belongs_to_many :jobs 
end 

business.rb

class Business < ActiveRecord::Base 
    has_and_belongs_to_many :categories 
end 

job.rb

class Job < ActiveRecord::Base 
    has_and_belongs_to_many :categories 
end 
相关问题