Rails действует как taggle на фильтре по нескольким тегам

У меня есть модель Tasks, которую можно пометить с помощью актов, помеченных как gem.

Маршрут: получить 'mainpage/:tag', to: 'mainpage#index', as::tag

Прямо сейчас, когда вы нажимаете на тег, он приводит вас ко всем задачам с этим тегом.

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

Ex.

На странице для тегов счетов (главная страница / счета) отображаются:

Кабель (с тегами: телевизор, кредитная карта. Счета)

Стулья (с тегом: кредитная карта, счета)

стол (с тегами: мебель, счета, салат)

Когда я нажимаю на тег "кредитная карта" на странице тега "Счета", я хочу, чтобы он отображал только те задачи, которые являются тегом "И" счета и тегом кредитной карты.

Я летаю немного слепо, как это сделать.

Спасибо за любую помощь или предложения

1 ответ

Решение

Из http://guides.rubyonrails.org/routing.html раздела 3.11:

get 'mainpage/*tags, to: 'mainpage#index', as: :tag

Добавление этого маршрута позволяет вам иметь такие URL-адреса, как /mainpage/bills а также /mainpage/bills/tv/furniture,

Первый URL будет входить в ваш mainpage#index метод с params[:tags] == 'bills'в то время как второй пришел бы с params[:tags] == 'bills/tv/furniture', Вы могли бы тогда просто разделить params[:tags] на /,

Обратите внимание, что в целях SEO вы, вероятно, захотите придумать определенную номенклатуру для URL-адресов, т. Е. Теги всегда URL-адреса в алфавитном порядке или что-то в этом роде.

Другие вопросы по тегам