在我的路线文件中,我有:
match 'graphs/(:id(/:action))' => 'graphs#(:action)'
如果是GET请求(工作)或POST请求(无法正常工作),我想与之匹配
我知道我可以使用以下命令在资源中声明POST请求:
post '/' => :show, :on => :member
但我如何才能匹配?
感谢。
答案 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:"语法更具可读性。