Rails 5 с использованием filterrific для фильтрации модели с полиморфной ассоциацией по атрибуту ассоциации.
Flag
belongs_to :flaggable, polymorphic: true
belongs_to :reporter, class_name: "User"
Post
belongs_to :user
has_many :flags, as: :flaggable
Comment
belongs_to :user
has_many :flags, as: :flaggable
Чтобы filteriffic работал, ему нужна область, определенная в модели, и я пытаюсь получить любой отмеченный пост или комментарий, принадлежащий определенному пользователю. flag.flaggable.user.id
работает правильно, но я не могу правильно определить область действия.
scope :with_owner_name, lambda { |post_owner|
includes(flaggable: :user).where( :post => {:user => [*post_owner]} )
}
or
scope :with_owner_name, lambda { |post_owner|
includes(flaggable: :user).where( :flaggable => {:user => [*post_owner]} )
}
возвращается
Не удается быстро загрузить полиморфную ассоциацию :flaggable
и попытка включить каждую помеченную модель по отдельности делает то же самое. Есть ли способ сделать это? Я ничего не могу найти в документации filterrific о полиморфных областях. Должен ли я вместо этого иметь связь между флагом и пользователем сообщения/комментария?