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

ruby ruby-on-rails-3 routes ruby-on-rails-4 匿名 | 2020-02-27 02:23:11


在Rails 3中,Match用于指向“GET”和“POST”以及其他类型请求的操作。
match "user/account" => user#account

现在,这将指向用户控制器对GET和POST请求的帐户操作。
正如在Rails 4中,“Match”已被弃用一样,我们能否在Rails 4中为GET和POST创建相同的路由?





2 答案



match
文档中,您可以使用
match
只要您有
via

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

编辑:添加了一个
as:
参数,以便可以通过url助手访问它。在这种情况下,
user_account_path
user_account_url

2020-02-27 02:23:26
匿名


在路由上,match方法将不再充当catch all选项。现在,您应该使用以下选项指定要响应的HTTP动词:via
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]

要获得更好的rails3.2兼容性,另一个选项是使用显式get、post或任何其他HTTP指定操作动词。有了这个选项,您的代码现在仍然可以运行,将来也可以进行升级。
Rails 3.2和4.0兼容
get "/users/:id" => "users#show"

多动词
get "/users" => "users#index"
post "/users" => "users#index"

2020-02-27 02:23:44
匿名


World is powered by solitude
备案号:湘ICP备19012068号