Я работаю над проектом, в котором многие модели ActiveRecord могут иметь связанный с ним разговор. Пользователи могут обсуждать практически все аспекты сайта. У меня есть две идеи относительно того, как это должно быть реализовано.RoR: Должен ли я использовать belongs_to,: polymorphic в этом сценарии?
1) Используйте BELONGS_TO в актив, а не разговор - разговор будет совершенно не знают о своем активе
class Product< ActiveRecord::Base
belongs_to :conversation
end
class PurchaseOrder < ActiveRecord::Base
belongs_to :conversation
end
2) Используйте BELONGS_TO,: полиморфный => правда в разговоре
class Conversation < ActiveRecord::Base
belongs_to :asset, :polymorphic => true
end
class Product < ActiveRecord::Base
has_one :conversation, :as => :asset
end
class PurchaseOrder < ActiveRecord::Base
has_one :conversation, :as => :asset
end
Каков правильный способ моделирования отношений? Если бы я заявлял об отношениях, я бы сказал, что «у продукта/заказа на покупку может быть один разговор».
Отличный ответ. Спасибо за понимание. – 2010-07-15 19:09:16