在Rails 3中,匹配用于指向“GET”和“POST”以及其他类型请求的操作。
match "user/account" => user#account
现在,这将指向用户控制器对GET和POST请求的帐户操作。 与 Rails 4 “匹配”已被弃用一样,我们可以在Rails 4中为 GET 和 POST 创建相同的路由吗?
答案 0 :(得分:83)
From the match
documentation,只要您有match
,就可以使用via
:
match "user/account" => "user#account", as: :user_account, via: [:get, :post]
编辑:添加了as:
参数,以便可以通过网址助手访问该参数。
答案 1 :(得分:41)
在路线上,匹配方法将不再作为全能选项。您现在应该使用以下选项指定要响应的HTTP谓词:via
match "/users/:id" => "users#show"
match "/users/:id" => "users#show", via: :get
match "/users" => "users#index", via: [:get, :post]
更好的Rails 3.2兼容性的另一个选择是使用显式的get,post或任何其他HTTP谓词来指定您的操作。使用此选项,您仍然可以在今天运行代码,并在将来证明升级。
get "/users/:id" => "users#show"
get "/users" => "users#index"
post "/users" => "users#index"