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-адреса в алфавитном порядке или что-то в этом роде.