我最近就遇到了這個問題:Rails 3 link_to (:method => :delete) not workingRails 3 link_to generator for:post,:put,&:delete?
在這我很困惑,爲什麼我link_to 'test', test_path(:test => test), :method => :post
不工作(爲什麼它被越來越而非張貼)。正如上面的帖子所示,這是因爲我沒有Rails的javascript文件,它可以動態地處理表格,爲:post
,:put
& :delete
。
我不確定我特別喜歡依賴於javascript來爲我做這件事,因爲我希望我的應用程序能夠在禁用javascript的情況下完全正常運行;這是我喜歡開發的方式(所以我知道我的所有Rails編程功能都能正常工作),並且當我用javascript連接應用程序時,我不必擔心重複此功能,因爲我通常會擦除由Rails生成的股票JavaScript文件。
我從某個地方讀到,在技術上,超鏈接(錨點元素)應該只用於GET請求,並且該按鈕(作爲表單元素的一部分)應該用於其他方法。
所以,我的兩個問題:
- 是否有寶石在那裏,將改寫在我看來,任何
link_to ... :method =>
到一個表單元素,當我的觀點被渲染上最靠譜? - 如果不是,我將如何鉤入視圖解析器來寫我自己的? (使用HAML,preferrably)
從本質上講,我想的是寫這在我的HAML文件:
= link_to 'Test Link', some_path(:with => some_resource), :method => :post
...並有我的渲染HTML輸出拿出這樣的:
<form action="some_path?with=some_resource" method="post">
<!-- insert appropriate _method hidden field here -->
<!-- add appropriate csrf token and whatnot -->
<button type="submit">Test Link</button>
</form>
......讓所有的link_to
傭工定義的方法(因此,不會影響普通的鏈接,其動詞GET)將工作無javascript?
我也很感激這個問題的爲什麼部分的任何想法,具體爲什麼Rails的團隊決定保留這個功能依賴於JavaScript的,而不是通過純HTML這樣做呢?
大。這給了我一些工作。謝謝! – neezer 2011-03-17 02:16:52