我正在使用Ruby on Rails創建我的應用程序並在heroku上使用THIN服務器。HTTP GET變成POST方法
目前使用Rails 3.2.8
我就遇到了這個bizzar行爲,我不明白。
鏈接是在導航欄中使用link_to助手創建的。我想明確地使用HTTP GET方法,所以我的Ruby代碼寫像這樣:
<%=link_to "FAQ",help_path,:method=> :get %>
生成的HTML看起來像這樣:
<a data-method="get" href="/en/help">FAQ</a>
如果我運行耙路線,help_path似乎是這樣的:
help (/:locale)/help(.:format) static_pages#Help {:locale=>/en}
然而,當我看看是什麼在Firebug與URL事情(使用網絡選項卡),它看起來像被用來代替GET POST方法。 所以不是錯過:
GET help
這被視爲代替:
POST help
如果我刪除,像這樣的明確呼籲get方法:
<%=link_to "FAQ",help_path %>
導致此:
<a href="/en/help">FAQ</a>
然後,在螢火蟲 - >網,我甚至不會看這個網址:得到幫助
在URL欄,這反而證明這一點:
? undefined
Wehn的URL是不確定的,軌道heroku上的應用程序將嘗試單獨加載每個資產文件,而不是加載預編譯的清單資產文件。
有沒有人遇到過這種情況?我無法弄清楚Rails或heroku的魔法黑匣子中的哪個地方,或者瘦服務器可能會改變get和post方法的行爲。
任何建議,非常感謝!
Erez,對link_to方法的很好的解釋。 link_to上的強制方法「Get」是我解決不同問題的一種方法。但根據你的回答,這不是最好的方法。我將重命名這個問題,這樣問題就更加明確。 – Kuu