我正在使用 Ruby on Rails 创建我的应用程序并在 heroku 上使用 THIN 服务器。
目前使用 Rails 3.2.8
我遇到了我不理解的这种奇怪的行为。
使用导航栏中的 link_to 助手创建了一个链接。我想显式使用 HTTP GET 方法,所以我的 ruby 代码是这样编写的:
<%=link_to "FAQ",help_path,:method=> :get %>
生成的 html 如下所示:
<a data-method="get" href="/en/help">FAQ</a>
如果我运行 rake 路由,help_path 如下所示:
help (/:locale)/help(.:format) static_pages#Help {:locale=>/en}
但是,当我查看 Firebug 中的 URL 发生了什么(使用 Net 选项卡)时,看起来使用的是 POST 而不是 GET 方法。所以而不是看到:
GET help
而是看到了这一点:
POST help
如果我像这样删除对 get 方法的显式调用:
<%=link_to "FAQ",help_path %>
结果是:
<a href="/en/help">FAQ</a>
然后,在 firebug -> Net 中,我什至看不到这个 URL:GET help
在 URL 列下,它将改为显示:
? undefined
如果 URL 未定义,heroku 上的 Rails 应用程序将尝试单独加载每个资产文件,而不是加载预编译的清单资产文件。
有没有人经历过这种情况?我无法完全弄清楚 Rails 或 heroku 或瘦服务器的神奇黑匣子在哪里可以改变 get 和 post 方法的行为。
非常感谢任何建议!