相同的Rails 4路由GET和POST请求
在Rails 3 Match中,用于指向“GET”和“POST”以及其他types的请求的操作。
match "user/account" => user#account
现在这将指向用户的控制器对GET和POST请求的帐户操作。 在Rails 4中, “match”已经被弃用了,我们可以在Rails 4中为GET和POST创build相同的路由吗?
只要您via
以下方式,您就可以使用匹配:
match "user/account" => "user#account", as: :user_account, via: [:get, :post]
编辑:添加一个as:
参数,以便它可以通过一个URL助手访问。 user_account_path
或user_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"