У меня есть 4 модели, скажем:
class Photo < ActiveRecord::Base
belongs_to :photoable, polymorphic: true
end
class User < ActiveRecord::Base
has_one :photo, as: :photoable
end
class Company < ActiveRecord::Base
has_one :photo, as: :photoable
has_many :products
end
class Products < ActiveRecord::Base
belongs_to :company
end
Итак, запрос Photo.all.includes(:photoable)
работает.
Но если я использую Photo.all.includes(photoable: :products)
, работает только в том случае, если все загруженные фотографии принадлежат Компании. Если отношение содержит фотографии пользователей и компаний, эта ошибка возникает:
ActiveRecord::ConfigurationError (Association named 'products' was not found; perhaps you misspelled it?):
Это происходит потому, что пользователь не имеет отношения к продуктам.
Есть ли способ загружать пользователей и компаний с продуктами для отношения фотографий?
EDIT:
Этот вопрос не дублируется Политическая нерезкость загрузки. Как я уже отмечал ниже, в этом вопросе я хочу сделать большую нагрузку для полиморфных ассоциаций, которые имеют разные ассоциации (у одного есть продукты, а другие нет). В этом вопросе OP использует неправильные имена для имен таблиц.