2015-11-19 4 views
0

В моем приложении Rails у меня есть модель под названием Проекты и проекты имеют человека Спины. Я использую gem acts_as_taggable_on, чтобы пользователи могли добавлять теги к своим спинам.actions_as_taggable_on поиск тегов связанной модели

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

Я знаю, что я могу искать спины, которые имеют особые метки со следующим:

Spin.tagged_with("LEGO") 

Как я могу сделать соответствующий поиск, что-то вроде

Project.find(1).spins.where(:tagged_with => "LEGO") 

(это не работает потому что нет атрибута tagged_with Spins - actions_as_taggable_on добавляет отдельную таблицу для тегов).

ответ

1
Project.joins(:spins).where('spins.id IN (?)', Spin.tagged_with("LEGO").select(:id))