Rails polymorphes has_many :through
Je suis en tirant des données à partir d'une API externe et souhaitez mettre en cache les résultats à l'échelle locale. J'ai un class SearchTerm
, que je voudrais être associés avec un peu de ActiveRecord types à travers la table searchable_items
. Je suis sûr que j'ai la place à des tables correctement, mais quelque chose dans mes associations doit être erroné.
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
Je m'attends à être en mesure de faire quelque chose comme SearchTerm.find_by_term('SearchTerm').searchables
(et il serait de retour un tableau de Foo et Bar objets) cependant, je reçois le message d'erreur
Could not find the association :searchable_items in model SearchTerm
Merci d'avance pour toute insight vous pouvez faire pour moi!
OriginalL'auteur lyricat | 2011-01-09
Vous devez vous connecter pour publier un commentaire.
Vous devez ajouter
has_many :searchable_items
association pourFoo
,Bar
etSearchTerm
modèles, car:through => :searchable_items
option fait référence à cette association.http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association
Cannot have a has_many :through association 'SearchTerm#searchables' on the polymorphic object 'Searchable#searchable'.
Similaire d'installation ici: stackoverflow.com/questions/1683265/...
Comme le message d'erreur dit, vous ne pouvez pas avoir a de nombreux à travers l'association sur polymorpic objet. Vous pourriez avoir séparé a de nombreuses démonstrations d'
Foo
etBar
comme dans la question ci-dessus.La question liée est exactement ce que je cherchais. Grâce Heikki.
OriginalL'auteur Heikki