Sto prelevando alcuni dati da un'API esterna e desidero memorizzare i risultati localmente in cache. Ho un class SearchTerm
, che vorrei essere associato a diversi tipi di ActiveRecord tramite la tabella searchable_items
. Sono abbastanza sicuro di avere le tabelle configurate correttamente, ma qualcosa nelle mie associazioni deve essere sbagliato.Rails polymorphic has_many: through
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
mi sarei aspettato di essere in grado di fare qualcosa di simile SearchTerm.find_by_term('SearchTerm').searchables
(e sarebbe restituire un array di Foo e Bar oggetti), tuttavia, ottengo l'errore Could not find the association :searchable_items in model SearchTerm
Grazie in anticipo per qualsiasi comprensione voi può fornirmi!
Purtroppo, l'aggiunta di quello che hai suggerito dà 'non può avere un has_many: attraverso l'associazione 'searchterm # verificare l'' sull'oggetto polimorfica 'ricercabile # searchable'.' – lyricat
configurazione simile qui: http: // StackOverflow. it/questions/1683265/activerecord-has-many-through-and-polymorphic-associations – Heikki
Come il messaggio di errore dice, non è possibile avere più associazioni attraverso l'oggetto polimorfico. Si potrebbe avere separato ha molti passaggi per 'Foo' e' Bar' come nella domanda collegata sopra. – Heikki