Railsが提供するリソースのデフォルトのルーティングをオーバーライドできますか?私のアプリでは、putメソッドでのみnew.html.erbにアクセスできるようにしたいと思います。しかし、定義map.resources :model
することにより、getメソッドでnew.html.erbにアクセスできるようになり、それを変更したいと思います。できますか?
質問する
1402 次
2 に答える
1
新しいアクションなしで、モデルのデフォルト ルートを生成する場合は、ルート ファイルでこの命令を使用できます。
resources :model, except: :new
同じファイルに、新しいアクションの非管理 (つまり「手動」) ルートを追加します。
put "articles/new" => "articles#new"
注: この構文match "articles/new" => "articles#new", via: :put
を使用して、将来さらにメソッドを簡単に追加することもできます。
于 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 に答える