1

私は3つのモデルを持っています。Jobs、、BusinessesCategories

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
4

2 に答える 2

1

と の共通点がどれだけあるかによると思いJobますBusiness。それらがほとんど同じ属性を持っている場合、はい、それらを同じテーブルに格納することは理にかなっています。

しかし、どちらの場合でも、多対多の関係があります: Jobshave manyCategoriesCategorieshave manyJobsです。これ:has_and_belongs_to_manyは、2 つをリンクする結合テーブルとの関係を必要とします。

于 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 に答える