Rails active_resource要求JS通过link_to进行删除吗?

时间:2008-12-19 08:58:51

标签: javascript ruby-on-rails ruby activeresource

当我使用link_to:method =>:delete时,生成的rails是一个javascript点击,如果您遇到的情况,您的客户端只是禁用了javascript,这不是很好。这对我来说似乎是一个坏主意。有机会绕过这个吗?

3 个答案:

答案 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的单个按钮的表单   由+选项+创建。这是最安全的方法   确保不会触发导致数据更改的链接   搜索机器人或加速器。