2016-04-28 2 views
1

У меня есть страница /articles, с которой я могу получить доступ через вспомогательный маршрут articles_path.Определение настраиваемого маршрута рельсов с параметрами запроса

Предположим, у меня есть 2 вкладки на этой странице (например, something like this), которые пользователь может щелкнуть вперед и назад, но не покидает страницу.

У меня есть логика, которая позволяет пользователю глубоко ссылаться на конкретную вкладку, поэтому любой из следующих URL-адресов действителен и откроет страницу на указанной вкладке напрямую.

  • /articles?tab=foo
  • /articles?tab=bar

Можно определить два новых пользовательские маршруты с указанными адресами, которые включают в себя параметры запроса? Я хотел бы иметь помощника, как articles_foo_tab_path и articles_bar_tab_path, которые непосредственно включают эти параметры запроса.

Спасибо!

ответ

2

Создать эти вспомогательные методы:

module ArticlesHelper 
    def articles_foo_tab_path(article) 
    article_path(article, tab: 'foo') 
    end 

    def articles_foo_bar_path(article) 
    article_path(article, tab: 'bar') 
    end 
end 

и использовать их в своих взглядах:

<%= link_to @article.title, articles_foo_bar_path(@article) %> 
1

Вспомогательный метод является одним из решений. В качестве альтернативы вы можете добавить маршрут, который отображает параметр вкладки в URL-адрес, например. статьи/foo или изделия/бар

get "articles(filter/:filter)", to: "articles#index", filter: /.*/