In Rails 3 Match utilisé pour pointer vers une action à la fois "GET" et "POST" et d'autres types de demandes.
match "user/account" => user#account
Maintenant, cela indiquera l'action du contrôleur de l'utilisateur pour les requêtes GET et POST. Comme dans Rails 4 "match" est déconseillé, pouvons-nous créer la même route pour OBTENEZ et POSTEZ dans Rails 4?
De la documentation match
, vous pouvez utiliser match
tant que vous avez via
:
match "user/account" => "user#account", as: :user_account, via: [:get, :post]
Modifier: ajout d'un as:
paramètre pour qu'il soit accessible via un assistant url. user_account_path
ou user_account_url
dans ce cas.
Sur les itinéraires, la méthode de correspondance n'agira plus comme une option fourre-tout. Vous devez maintenant spécifier le verbe HTTP auquel répondre avec l'option: via
match "/users/:id" => "users#show"
match "/users/:id" => "users#show", via: :get
match "/users" => "users#index", via: [:get, :post]
Une autre option pour une meilleure compatibilité Rails 3.2 consiste à simplement spécifier vos actions avec get, post ou tout autre verbe HTTP explicite. Avec cette option, vous obtenez toujours votre code en cours d'exécution aujourd'hui et le testez pour la mise à niveau.
get "/users/:id" => "users#show"
get "/users" => "users#index"
post "/users" => "users#index"