2016-04-28 10 views
1

私はarticles_pathルートヘルパー経由でアクセスできる/articlesページを持っています。クエリパラメータを使用してカスタムレールルートを定義する

ページ上に2つのタブ(例:something like this)があり、ユーザーが前後にクリックできるが、ページを離れることはないとします。

ユーザーに特定のタブへのディープリンクを許可するロジックがあるので、次のいずれかのURLが有効であり、指定したタブでページを直接開きます。

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

クエリパラメータを含んで上記のURLを持つ2つの新しいカスタムルートを定義することは可能ですか?私はarticles_foo_tab_patharticles_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: /.*/ 
関連する問題