セットアップしようとしているモデルが 3 つあります。場所/会場、カテゴリ、近隣です。
Location には親カテゴリとサブカテゴリが必要ですが、その Neighborhood はオプションです。カテゴリ モデルには、トップレベルのカテゴリまたはサブカテゴリがあります。
上記を考えると、これはモデルの関連付けを定義する正しい方法ですか?
class Location < ActiveRecord::Base
attr_accessible # location-specific columns
belongs_to :category
belongs_to :parent_category, :class_name => "Category"
belongs_to :neighborhood
end
class Category < ActiveRecord::Base
has_many :locations
has_many :subcategories, :class_name => "Category", :foreign_key => "parent_category_id"
belongs_to :parent_category, :class_name => "Category"
end
class Neighborhood < ActiveRecord::Base
has_many :locations
end
(実際、適切なRails Guideをさらに読んだ後、代わりにポリモーフィックな関連付けの方が適しているように見えますか?)