J'ai deux modèles, Article et Post qui héritent tous les deux d'un modèle de base appelé ContentBase.Comment spécifier le champ "commentable_type" avec des associations polymorphes?
Vous pouvez laisser des commentaires à la fois sur les articles et sur les articles. J'utilise donc une association polymorphique entre les commentaires et l'article ou la publication.
Cependant, puisque Article et Post héritent de ContentBase, le champ commentable_type finit par être "ContentBase" pour les deux et tout vider.
Existe-t-il un moyen de spécifier le champ commentable_type dans la relation has_many dans Article et Post?
Edit:
Par "tout Fout" Je veux dire que s'il y a un article avec ID = 1 et Post avec ID = 1 et ajouter un commentaire avec commentable_id = 1, commentable_type = Contentbase, ce commentaire sera montrer à la fois pour l'article et la poste.
Voici le code:
class Article < BaseContent
has_many :comments, :as => :commentable
end
class Post < BaseContent
has_many :comments, :as => :commentable
end
et voici mon modèle Commentaire:
class Comment < ActiveRecord::Base
belongs_to :commentable, :polymorphic => true
end
Il y a un tas de fonctions partagées et validates_length_of pour quelques champs partagés. Est-il possible de le déplacer dans un module? –