2012-10-18 153 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 
相關問題