Я извлекаю некоторые данные из внешнего API и хотел бы кэшировать результаты локально. У меня есть class SearchTerm
, который я хотел бы связать с несколькими различными типами ActiveRecord через таблицу searchable_items
. Я уверен, что таблицы правильно настроены, но что-то в моих ассоциациях должно быть неправильным.
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
Я бы ожидал, что смогу сделать что-то вроде SearchTerm.find_by_term('SearchTerm').searchables
(и он вернет массив объектов Foo и Bar), однако я получаю ошибку
Could not find the association :searchable_items in model SearchTerm
Заранее благодарим за любое понимание, которое вы можете мне предоставить!