0

シェルで rake routes と入力すると、適切なルートのリストが表示されます。

      new_edition GET    /editions/new(.:format)           editions#new
     edit_edition GET    /editions/:id/edit(.:format)      editions#edit
         edition GET    /editions/:id(.:format)           editions#show
                 PUT    /editions/:id(.:format)           editions#update
              DELETE /editions/:id(.:format)           editions#destroy

これは非常に役立ちますが、たとえば、アプリで使用する必要がある実際のコードも表示しないのはなぜですか

 edition GET    /editions/:id(.:format)  editions#show  edition_path()

これよりも多くのことがある可能性があるためだと思いますが、一般的な問題は、ルートの例を見て、ルートの意味を理解するために明示的にコード化されている方法の例を調べたことです...

4

2 に答える 2

5

直接使用xxx_pathすることだけが選択肢ではありません。

Rails は、メソッドを介して URL を構築するための機知に富んだ方法を提供しますpolymorpic_path/_url。これらのメソッドは、次のような他の多くのヘルパーによって使用されます。

link_to 'Edit', [:edit, @user]     # instead of edit_user_path(@user)
redirect_to Product                # instead of products_path
form_for [@order, @product] do |f| # instead of order_product_path(@order, @product)
visit url_for [:preview, @invoice] # instead of preview_invoice_path(@invoice)

したがって、preview_invoice接頭辞を見ることで何をすべきかがわかりますが、正確な方法はあなた次第です。

于 2012-06-11T12:47:55.897 に答える
0

必要な情報はすべて揃っています。最初の列は、ルート ヘルパーの名前のプレフィックス (たとえば、new_edition) を示します。必要なのは、完全なメソッド名を追加する_pathか取得することだけです。_url

次に、対応するヘルパー メソッド名に関する表示のないルートがいくつかあります。これは、別のルートと同じ URL に一致し、HTTP 動詞 (GET、POST) のみが変更されるためです。method: 'delete'したがって、たとえば呼び出しに追加する必要があります。

于 2012-06-11T12:06:12.107 に答える