J'ai un certain nombre de modèles (article, vidéo, photo)has_many polymorphes autoréférentielle
Maintenant, je suis en train de créer une association de RELATED_TO, de telle sorte que
Un article peut avoir beaucoup d'autres articles, vidéos et des photos liées à celui-ci. Comme peuvent les vidéos et les photos.
Heres ce que j'ai essayé:
ModuleActsAsRelatable
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def acts_as_relatable
has_many :related_items, :as => :related
has_many :source_items, :as => :source, :class_name => 'RelatedItem'
end
end
fin
classe RelatedItem < ActiveRecord :: Base belongs_to: source: polymorphes => true belongs_to: lié, : polymorphique => vrai fin
Puis j'ai ajouté acts_as_relatable à mes trois modèles (Article, Vidéo, Photo) et inclus le module dans ActiveRecord :: Base
En essayant dans ./script/console je l'obtiens pour ajouter les articles liés et les ids fonctionnent correctement Cependant, le type_source et le type_transfert sont toujours les mêmes (l'objet auquel les éléments liés ont été appelés). Je veux que l'élément lié soit l'autre nom de modèle.
Vous avez des idées?
Je comprends ce que vous essayez de faire avec related_items - vous l'avez expliqué au-dessus du code - mais à quoi servent les sources_items? –
Ce serait génial si vous pouviez corriger l'indentation afin que le bloc de code contienne tout votre code. – Benson