Ich ziehe einige Daten von einer externen API und möchte die Ergebnisse lokal zwischenspeichern. Ich habe eine class SearchTerm
, die ich mit einigen verschiedenen ActiveRecord-Typen durch die Tabelle searchable_items
zugeordnet werden möchte. Ich bin mir ziemlich sicher, dass ich die Tische richtig eingerichtet habe, aber etwas in meinen Assoziationen muss falsch sein.Rails polymorph has_many: durch
class Foo < ActiveRecord::Base
has_many :search_terms, :as => :searchable, :through => :searchable_items
end
class Bar < ActiveRecord::Base
has_many :search_terms, :as => :searchable, :through => :searchable_items
end
class SearchTerm < ActiveRecord::Base
has_many :searchables, :through => :searchable_items
end
class SearchableItem < ActiveRecord::Base
belongs_to :search_term
belongs_to :searchable, :polymorphic => true
end
Ich würde erwarten, dass so etwas wie SearchTerm.find_by_term('SearchTerm').searchables
zu tun, aber (und es wäre ein Array von Foo und Bar Objekte zurückgeben), erhalte ich die Fehler Could not find the association :searchable_items in model SearchTerm
Vielen Dank im Voraus für jede Einsicht Sie kann mir liefern!
Leider Zugabe was Sie vorgeschlagen gibt's keinen has_many hat: durch Assoziation ‚Suchbegriff # prüft mit‘ auf das polymorphe Objekt ‚durchsuchbare # searchable'.' – lyricat
ähnlichen Setup hier: http: // Stackoverflow. com/questions/1683265/activerecord-hat-viel-durch-und-polymorphe associations – Heikki
Wie die Fehlermeldung sagt, können Sie nicht viele durch Zuordnung auf polymorpic-Objekt haben. Sie könnten separate haben viele throughs für 'Foo' und' Bar' wie in der verknüpften Frage oben. – Heikki