相同的Rails 4路由GET和POST请求

在Rails 3 Match中,用于指向“GET”“POST”以及其他types的请求的操作。

match "user/account" => user#account 

现在这将指向用户的控制器对GET和POST请求的帐户操作。 在Rails 4中, “match”已经被弃用了,我们可以在Rails 4中为GETPOST创build相同的路由吗?

只要您via以下方式,您就可以使用匹配:

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

编辑:添加一个as:参数,以便它可以通过一个URL助手访问。 user_account_pathuser_account_url

在路线上,匹配方法将不再作为一个全面的选项。 您现在应该使用选项:via来指定要响应哪个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兼容性的另一个select是只用明确的get,post或任何其他的HTTP动词来指定你的动作。 有了这个选项,您仍然可以在今天运行您的代码,并且可以为将来的升级提供证据。

Rails 3.2和4.0兼容

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

多动词

 get "/users" => "users#index" post "/users" => "users#index"