使用查询参数定义自定义rails路由

时间:2016-04-28 16:53:43

标签: ruby-on-rails ruby-on-rails-4 routes

我有一个/articles页面,我可以通过articles_path路径助手访问。

假设我在该页面上有两个标签(例如something like this),用户可以来回点击,但它不会离开页面。

我有逻辑允许用户深层链接到特定选项卡,因此以下任一URL都是有效的,并将直接打开指定选项卡上的页面。

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

是否可以使用包含查询参数的上述网址定义两个新的自定义路由?我希望有一个像articles_foo_tab_patharticles_bar_tab_path这样的帮助器直接合并这些查询参数。

谢谢!

2 个答案:

答案 0 :(得分: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 :(得分:1)

辅助方法是一种解决方案。或者,您可以添加将标签参数映射到网址的路由,例如articles / foo或articles / bar

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