Мне нужна небольшая помощь с Rails. Я переношу серверную систему служб поиска данных с PHP на RoR. Что я нахожу удивительно кратким.
Мне нужно иметь возможность искать модель по ее отношению к модели тега. Каждой модели присвоена ассоциация has_and_belongs_to_many.
Когда поиск передается со списком значений, разделенных запятыми, мне нужно выполнить поиск «И» по тегам, чтобы я мог найти все ресурсы, в которых переданы все теги (например, Лондон И мосты).
Также он должен быть нечувствительным к регистру. В настоящее время в модели ресурсов выполняется только один поиск тегов.
def self.search(search)
where('LOWER(tags.name) = ?', search.downcase).joins(:tags)
end
Все мои попытки использовать массив с использованием where
, find
или all
не увенчались успехом.
PHP-способ выполнения поиска AND в таблице соединений кажется довольно хакерским, я надеюсь, что Rails может предоставить более элегантное решение.
Любая помощь будет принята с благодарностью.