Estoy extrayendo algunos datos de una API externa y me gustaría almacenar en caché los resultados a nivel local. Tengo un class SearchTerm
, que me gustaría asociar con algunos tipos diferentes de ActiveRecord a través de la tabla searchable_items
. Estoy bastante seguro de que tengo las tablas configuradas correctamente, pero algo en mis asociaciones debe estar mal.Rails polimórficos has_many: a través de
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
que sería de esperar a ser capaz de hacer algo como SearchTerm.find_by_term('SearchTerm').searchables
(y sería devolver una matriz de objetos Foo y Bar), sin embargo, me sale el error Could not find the association :searchable_items in model SearchTerm
Gracias de antemano por cualquier idea que puede proporcionarme!
Por desgracia, la adición de lo que usted sugiere da 'No se puede tener un has_many: a través de la asociación de searchTerm # Searchables 'en el objeto polimórfico 'investigable # searchable'.' – lyricat
configuración similar aquí: http: // stackoverflow. com/questions/1683265/activerecord-have-many-through-and-polymorphic-associations – Heikki
Al igual que el mensaje de error dice, no puede tener muchas asociaciones mediante el objeto polimórfico. Podrías haber separado muchas entradas para 'Foo' y' Bar', como en la pregunta vinculada anterior. – Heikki