Ruby on rails 3 HTTP GET转换为POST方法

Ruby on rails 3 HTTP GET转换为POST方法,ruby-on-rails-3,heroku,routes,thin,http-get,Ruby On Rails 3,Heroku,Routes,Thin,Http Get,我正在使用RubyonRails创建我的应用程序,并在heroku上使用瘦服务器 目前正在使用Rails 3.2.8 我遇到了这种奇怪的行为,我不明白 使用导航栏中的“链接到”辅助对象创建了链接。我想显式使用HTTP GET方法,因此我的ruby代码是这样编写的: <%=link_to "FAQ",help_path,:method=> :get %> 然而,当我查看Firebug中的URL(使用Net选项卡)时,似乎使用了POST而不是GET方法。 因此,与其看到: GET

我正在使用RubyonRails创建我的应用程序,并在heroku上使用瘦服务器

目前正在使用Rails 3.2.8

我遇到了这种奇怪的行为,我不明白

使用导航栏中的“链接到”辅助对象创建了链接。我想显式使用HTTP GET方法,因此我的ruby代码是这样编写的:

<%=link_to "FAQ",help_path,:method=> :get %>
然而,当我查看Firebug中的URL(使用Net选项卡)时,似乎使用了POST而不是GET方法。 因此,与其看到:

GET help
相反,人们看到的是:

POST help
如果删除对get方法的显式调用,如下所示:

<%=link_to "FAQ",help_path %>
如果URL未定义,heroku上的Rails应用程序将尝试单独加载每个资产文件,而不是加载预编译的清单资产文件

有人经历过这种情况吗?我不太清楚在Rails、heroku或瘦服务器的神奇黑匣子中,get和post方法的行为会发生什么变化


非常感谢您的任何建议

我将开始说,我不明白为什么要链接到并显式地声明:get作为:方法。无论如何,这是默认行为

对于您的问题:您看到一个POST请求,因为当您使用link_To的:method选项时,它会生成一个表单,该表单将POST到所需的URL,并生成一个带有所需请求类型(POST/PUT/DELETE/GET)的_方法隐藏输入。Rails知道如何处理POST请求,其中包括_方法参数,并使用正确的路由进行响应。在您的示例中-与GET操作匹配的路由

你可以在链接上阅读更多内容

编辑:


我更彻底地阅读了文档,似乎:method选项不支持:get作为值

Erez,很好地解释了链接到方法。在link_to上强制方法“Get”是我解决另一个问题的方法。但根据你的回答,这不是最好的办法。我将重新命名这个问题,使问题更明确。
POST help
<%=link_to "FAQ",help_path %>
<a href="/en/help">FAQ</a>
? undefined