web-dev-qa-db-ja.com

同じRails GETおよびPOSTリクエストの4つのルート

In Rails 3 "GET""POST"および他のタイプのリクエストの両方のアクションを指すために使用される一致。

match "user/account" => user#account

これは、GETおよびPOSTリクエストの両方に対するユーザーのコントローラーのアカウントアクションを指します。Rails 4 "match"は廃止されました。 [〜#〜] get [〜#〜]および[〜#〜] post [〜#〜] in Rails 4?

40
Adnan Ali

matchドキュメントからmatchがある限り、viaを使用できます。

match "user/account" => "user#account", as: :user_account, via: [:get, :post]

編集:as:パラメーターを追加して、URLヘルパーからアクセスできるようにしました。この場合、user_account_pathまたはuser_account_url

85
Tim Dorr

ルートでは、matchメソッドはキャッチオールオプションとして機能しなくなります。次のオプションを使用して、応答するHTTP動詞を指定する必要があります。

Rails 3.2

match "/users/:id" => "users#show"

Rails 4.0

match "/users/:id" => "users#show", via: :get

または複数の動詞を指定する

match "/users" => "users#index", via: [:get, :post]

より良いRails 3.2の互換性は、明示的なget、post、またはその他のHTTP動詞でアクションを指定することです。このオプションを使用すると、コードを現在実行し、アップグレード。

Rails 3.2および4.0互換

get "/users/:id" => "users#show"

複数の動詞

get "/users" => "users#index"
post "/users" => "users#index"
43
Ch Zeeshan