Ruby on rails 如何使用rails 4中routes.rb中的一行处理get和post请求

Ruby on rails 如何使用rails 4中routes.rb中的一行处理get和post请求,ruby-on-rails,Ruby On Rails,如何在一行中处理get和post请求 我在控制器(帐户)中有一个定义(测试)。此定义可以称为get请求或post请求。但我想在routes.rb文件的单行中定义它 现在我做的就像 资源:帐户可以 collection do get 'test' post 'test' end 结束 这是最坏的情况。如果我在一个控制器中有更多的定义,我需要为每个定义提到两次 请给我提供解决方案 您应该使用get、post、put、patch和delete方法将路由约束到特定动词。您可以使用ma

如何在一行中处理get和post请求

我在控制器(帐户)中有一个定义(测试)。此定义可以称为get请求或post请求。但我想在routes.rb文件的单行中定义它

现在我做的就像

资源:帐户可以

 collection do

  get 'test'

  post 'test'

 end
结束

这是最坏的情况。如果我在一个控制器中有更多的定义,我需要为每个定义提到两次


请给我提供解决方案

您应该使用
get
post
put
patch
delete
方法将路由约束到特定动词。您可以使用
match
方法和
:via
选项一次匹配多个动词:

match 'photos', to: 'photos#show', via: [:get, :post]
您可以使用via::all将所有谓词与特定路由匹配:

match 'photos', to: 'photos#show', via: :all
例如:

match '/list' => 'products#products_list', :as => 'products_list' , via: [:get, :post]

当我在routes.rb文件中声明这一点时,会在netbeans中显示类似“意外”:“的错误。请参阅我答案中的示例。。替换,to:with=>获取此异常。。。未定义的局部变量或方法“via”用于#您可能还需要将
via:[…]
替换为
:via=>[…]
。值得一提的是,在这种情况下,您使用的是哪个版本的ruby和哪个版本的rails。