Солнечное пятно с несколькими моделями (в Rails)

У меня есть три модели ( Пользователь , Тег , Продукт ), и они взаимодействуют. St Пользователь имеет много тегов и продуктов .

Для целей поиска я хотел бы иметь возможность для поиска (с одной строкой поиска) по именам пользователей, именам тегов и описаниям продуктов. Я также хотел бы выполнить поиск на страницах продуктов, но это актуально только для названий тегов и описаний продуктов.

Вот два примера:

Поиск: «Линус Торвальдс» возвращает все экземпляры Линуса Торвальдса в трех моделях с любыми экземплярами имени пользователя, помещенными выше.

Поиск: «Linux» с возрастом: «20-25» возвращает все экземпляры пользователей с продуктами, которые включают «Linux» в их имя / описание и принадлежат этому возрастному диапазону, а также Пользователи с тегами, включающими "Linux" и у которых есть Продукты, которые относятся к этому возрастному диапазону. Обратите внимание: если поиск не включал возраст, то по умолчанию он будет использоваться для всех, кто подходит под «Linux», а не для всех.

Мой вопрос: как лучше всего это сделать? Следует ли мне создать модель поиска с собственным контроллером? Должен ли я просто проигнорировать это и включить часть поиска в общую папку? Какие еще есть методы?

Большое спасибо.

14
задан fivedigit 15 December 2014 в 13:54
поделиться