2012-01-19 9 views
1

ブログを実装することで、ほとんどの方法でレールを学習しています。私はちょうどタグを付けて、記事を表示するときにクリック可能なタグを表示しているところまで自分の記事のビューを持っています。問題はリンクがこのように出ていることです。rails newbie - クエリーコードをルートに変更する方法

http://localhost:3000/articles?tagged_with=development

私は、クエリ文字列を持っており、その代わりのようなものを持ってしたくありません。 (!だけではない、この、そこに有用なものの多くを)

私はレールサイトの「裏返しルートは」ガイドに関連する何かを見つけることができません

http://localhost:3000/articles/tagged_with/development

ここに完全なコード: https://github.com/mikeyhogarth/mikeyblog

優勢ビットは、

_article.html.erb内のリンク

<%= link_to tag, articles_path(:tagged_with => tag) %> 

記事インデックスコントローラ:

def index 

if(params[:tagged_with]) 
    @tag = params[:tagged_with] 
    @articles = Article.tagged_with @tag 
else 
    @articles = Article.all 
end 

respond_to do |format| 
    format.html # index.html.erb 
    format.json { render json: @articles } 
end 
end 

これを行うためのレールのベストプラクティスの方法は何ですか?私は "tagged_with"アクションを実装してヘルパーを作成する必要がありますか、これをjiffyで並べ替えることができるいくつかのレールルーティングマジックはありますか?

EDITは:最終的に私は最終的に答えを見つけた答え

答えて

1

あなたのルートにこのようなものを追加してみてください(未テスト):

match '/articles/tagged/:tagged_with' => 'articles#index', :as => :tagged_articles 

その後:あなたにかなり近い

link_to(tag, tagged_articles_path(:tagged_with=>"foobar")) 
+0

笑:) – klochner

+0

私はあなたにポイントをあげますとにかく芽、答えに時間をとってくれてありがとう –

1

が見つかりました:私は「という名前のルート」を必要としていました。他の誰かがこの質問をしているなら、私はroutes.rbファイルに入れます。

match "/articles/tagged_with/:tag" => "articles#index", :as => "articles_tagged_with" 

この場合、単に「link_to」にこれを置き換えます。

<%= link_to tag, articles_tagged_with_path(:tag => tag) %>, 
関連する問題