获取并发布相同匹配的请求

时间:2011-08-08 11:04:38

标签: ruby-on-rails ruby ruby-on-rails-3 routes

在我的路线文件中,我有:

match 'graphs/(:id(/:action))' => 'graphs#(:action)'

如果是GET请求(工作)或POST请求(无法正常工作),我想与之匹配

我知道我可以使用以下命令在资源中声明POST请求:

post '/' => :show, :on => :member

但我如何才能匹配

感谢。

2 个答案:

答案 0 :(得分:11)

如果你想要POST和GET

match 'graphs/(:id(/:action))' => 'graphs#(:action)', :via => [:get, :post]

修改

默认值可以设置如下

match 'graphs/(:id(/:action))' => 'graphs#(:action)', :via => [:get, :post],
                                                      :defaults => { :action => "index" }

并且语法似乎正确

答案 1 :(得分:0)

如果您只需要匹配来响应单个HTTP谓词或方法(GET,POST,PUT,DELETE,PATCH是最常见的),那么使用类似于" post"的语法。示例有效并且更具可读性。

匹配'图表/(:id(/:action))' => '图#(:动作)'

可以成为

发布'图表/(:id(/:action))' => '图#(:动作)' 如果你想匹配和限制http POST方法。

获取'图表/(:id(/:action))' => '图#(:动作)' 如果你想匹配和限制http Get方法。

如果你需要回复几个http动词那么" via:"语法更具可读性。