1

我有 3 个模型。Jobs, Businesses, & Categories.

Jobs有很多categories

Businesses有很多categories

Categories有很多jobs

Categories有很多businesses

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


类别.rb

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

业务.rb

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

工作.rb

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

2 回答 2

1

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

但无论哪种情况,你都有一个多对多的关系:Jobs拥有 manyCategoriesCategorieshave many Jobs。这将需要:has_and_belongs_to_many与连接两者的连接表建立关系。

于 2012-10-18T08:05:13.347 回答
0

我会建议你 habtm 关系

类别.rb

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

业务.rb

class Business < ActiveRecord::Base
   has_and_belongs_to_many :categories
end

工作.rb

class Job < ActiveRecord::Base
    has_and_belongs_to_many :categories
end
于 2012-10-18T09:35:20.230 回答