0

Railsが提供するリソースのデフォルトのルーティングをオーバーライドできますか?私のアプリでは、putメソッドでのみnew.html.erbにアクセスできるようにしたいと思います。しかし、定義map.resources :modelすることにより、getメソッドでnew.html.erbにアクセスできるようになり、それを変更したいと思います。できますか?

4

2 に答える 2

1

新しいアクションなしで、モデルのデフォルト ルートを生成する場合は、ルート ファイルでこの命令を使用できます。

resources :model, except: :new

同じファイルに、新しいアクションの非管理 (つまり「手動」) ルートを追加します。

put "articles/new" => "articles#new"

注: この構文match "articles/new" => "articles#new", via: :putを使用して、将来さらにメソッドを簡単に追加することもできます。

詳細: http://guides.rubyonrails.org/routing.html

于 2013-03-05T05:59:54.213 に答える
0

これを行う 1 つの方法は、routes.rb でモデルをリソースとして宣言せず、必要なルートを手動で設定することです。

たとえば、モデルが Article の場合、routes.rb に含めることができます。

put "articles/new" => "articles#new"

「articles/new」を新しいアクションに一致させ、PUT メソッドのみに制限します。

于 2013-03-05T05:43:11.010 に答える