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