仅适用于[POST]的默认路由 - Ruby on Rails 3.2

时间:2013-01-10 11:45:50

标签: ruby-on-rails paypal ruby-on-rails-3.2 refinerycms

在我的网站上指定PayPal的返回URL时,出现以下错误:

  

没有路线匹配[POST]“/”

我想为POST方法指定默认路由。

如何使默认'root'路由同时接受POST次请求? 我可以为'root'POST请求指定单独的GET路由吗?

我的路线目前看起来像这样:

root GET / refinery/pages#home

顺便说一下,我正在使用Refinery CMS

2 个答案:

答案 0 :(得分:1)

我认为root 一个GET请求,它“想要”指定应用程序应该如何仅通过域名调用应答(或挂载) - 引擎的路径)。

您可以尝试使用

match "/", :via => :post ...

但是如果您允许回复问题:为什么您坚持要将PayPal发布到您的root-URL?您应该能够在那里指定任意URL,只需定义一个

match "postback" => "...", :via => :post

并且一切都很好。

顺便说一句:sanny Sin要求你发布rake routes命令的输出,在你的命令行输入它(并且最有可能省略炼油厂路线: - )

答案 1 :(得分:1)

最后对我有用的是match加上redirect

match "/" => redirect("/"), :via => :post

这会将POST个请求转换为/GET个请求。否则,请求将转到正确的路由,但它仍然是POST请求,这使得我的会话未加载。我仍然不确定为什么POST / {{1}}请求没有加载我之前进入Pay​​Pal并返回的原始会话。