当我使用link_to:method =>:delete时,生成的rails是一个javascript点击,如果您遇到的情况,您的客户端只是禁用了javascript,这不是很好。这对我来说似乎是一个坏主意。有机会绕过这个吗?
答案 0 :(得分:1)
它生成的是一个带有method =“delete”的表单,你最好的选择是自己创建表单,唯一的一点是提交按钮不是链接,而是按钮。
您不应该尝试使用基本<a href="">
来执行此操作,因为不应使用GET
请求进行破坏性操作(创建,更新,删除)。
答案 1 :(得分:1)
您唯一的其他选择是手动完成。
假设您要删除的对象位于@item中,请执行以下操作:
form_for @item, :method => :delete do |f|
f.submit "Delete this item"
end
然后,如果需要,您可以设置提交按钮的样式,使其看起来像普通链接。
答案 2 :(得分:0)
如果您需要在没有JavaScript的情况下使用它button_to
:
<%= button_to 'Delete', @item, :method => :delete %>
来自doc:
生成一个包含提交到URL的单个按钮的表单 由+选项+创建。这是最安全的方法 确保不会触发导致数据更改的链接 搜索机器人或加速器。