Ich habe eine Reihe von Modellen (Artikel, Video, Foto)Polymorphe has_many selbstbezüglicher
Nun Ich versuche, eine RELATED_TO Assoziation zu schaffen, so dass
Ein Artikel viele andere Artikel haben, Videos und Fotos dazu. Wie können Videos und Fotos.
Heres, was ich habe versucht:
Modul ActsAsRelatable
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
Ende
Klasse RelatedItem < Activerecord :: Base belongs_to: Quelle: polymorphen => true belongs_to: bezogen, : polymorph => wahr Ende
Dann habe ich hinzugefügt acts_as_relatable meine drei Modelle (Artikel, Video, Foto) und enthalten das Modul in Activerecord :: Base
Wenn in ./script/console versuche ich es die damit verbundenen Elemente hinzuzufügen und die IDs richtig funktionieren Allerdings sind der source_type und der related_type immer gleich (das Objekt, von dem related_items aufgerufen wurde). Ich möchte, dass das related_item der andere Modellname ist.
Irgendwelche Ideen jemand?
Ich bekomme, was Sie mit related_items zu tun versuchen - Sie haben das über den Code erklärt - aber wofür ist source_items? –
Es wäre großartig, wenn Sie die Einrückung korrigieren könnten, so dass der Code-Block Ihren gesamten Code enthält. – Benson