Мне нужна возможность поиска определенных предметов пользователя через ассоциации has_many.
Первоначально у меня было searchkick
на моей модели Предметов, а теперь оно на моей пользовательской модели. Я также задал вопрос несколько недель назад на этот же вопрос, однако я не получил ответов и с тех пор немного изменил код.
class User < ApplicationRecord
searchkick
has_many :items, -> (user) { unscope(:where).where("(consumer_type = ? and consumer_id = ?))", 'User', user.id) }, fully_load: false, dependent: :destroy
def search_data
attributes.merge(
items: library_items.as_json,
)
end
end
В моем контроллере мне нужна возможность выполнить запрос, такой как: @results = current_user.items.search('Query')
, чтобы я возвращал элементы, к которым имеет доступ только этот пользователь.
В настоящее время, когда я запускаю что-то подобное в консоли rails:
user = User.first
user.search 'Email'
Я получаю "неопределенный метод" поиска для #
Как мне правильно настроить что-то подобное? Должен ли я на самом деле поставить searchkick
на модель Item? Если да, то как мне тогда заняться поиском