Je travaille sur un projet où de nombreux modèles ActiveRecord peuvent avoir une conversation associée. Les utilisateurs peuvent discuter à peu près tous les aspects du site. J'ai deux idées sur la façon dont cela devrait être mis en œuvre.RoR: Devrais-je utiliser belongs_to,: polymorphic dans ce scénario?
1) Utilisez un belongs_to dans l'actif, et non pas la conversation - conversation totalement pas au courant de son actif
class Product< ActiveRecord::Base
belongs_to :conversation
end
class PurchaseOrder < ActiveRecord::Base
belongs_to :conversation
end
2) Utilisez un belongs_to,: polymorphes => true dans la conversation
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
Quelle est la bonne façon de modéliser cette relation? Si je devais dire la relation, je dirais que "un produit/commande d'achat peut avoir une conversation".
Grande réponse. Merci pour votre perspicacité. –