我最近就遇到了这个问题: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