2013-09-28 21 views
5

私はRuby on Railsを学び始めています。私は疑問を持っています。発見link_to vs url_for対Railsのパス

パス

  • のlink_toそして、どのようなurl_for私が使用することができます/:

    は、私はすでにRails documentation見るが、私は間のすべての違いを理解していません私のアプリケーションのパス?さらに、次のようなパスにパラメータを送信できますか:

    <%= users_path + "/user.id/" %> 
    

    このようなものはありますか?

    +0

    これをチェックしましたか? http://guides.rubyonrails.org/routing.html#listing-existing-routes – depa

    答えて

    9

    url_forは、たとえば、www.example.com/my/pathなどの完全なURLをurl_for my_path_urlから取得します。

    link_toはあなた例えば、特定のパスへのリンクを与える:

    link_to url_for(my_resource_path) 
    
    を:

    link_to example_path,"click me" 
    

    あなたはまた、このようなurl_forでこれを使用することができます

    <a href="www.example.com/my/path">click me</a> 
    

    につながります

    0123あなたのroutes.rbファイル内のパスを参照するのに、が使用されています。たとえば、

    match '/my/:id/page' => 'my#page' 
    

    の場合、my_page_path(...)を使用できます。

    パスに:idが必要な場合は、my_page_path(current_user.id)のようにresource_pathにパラメータとして渡すことができます。

    また、あなたは、単にプリセットルートパラメーターにそれらを追加することによって、他のクエリパラメータを追加することができます

    my_page_path(current_user.id,:hello => "world") 
    

    は、あなたが既存のパスにパスを追加できるかどうかを尋ねます。これらの関数は単に呼び出し元に文字列を返すので、すべての目的と目的のために、そのパスが文字列と適切なルートを共役にしている限り、あなたが書いたものを正確に行うことができます。

    +0

    お返事いただければありがとうございます。とにかく私はあなたに最高の答えを与えますが、誰かが助けを必要とするならばより良いです。そしてありがとう、これは本当に助けになった。 – Paladini

    +0

    'また、他のクエリパラメータをプリセット経路パラメータに追加するだけで追加できます。これは良いですが、私はこのパラメータを探索するAPIを見つけることができませんか?ここでも、http://guides.rubyonrails.org/routing.htmlこのパスメソッドのAPIドキュメントはどこにありますか? – GMsoF