0

我有一个 Rails 应用程序,在它被删除之前,我正在执行一个带有“你确定”的常规删除对话框。没关系,但我也有一个小的 ajax 点击删除包含所有信息的块。无论什么使事情变得混乱,该块都会被删除。我似乎无法在网上找到任何关于如何在确认符号后有条件地执行操作的文档。

我的代码如下所示:

 <%= link_to_remote "Delete", :url => 
   {:controller => "pixel", :action => :destroy, :id => pixel.id}, 
   :onclick=>"$(this).up(0).remove()" %>

谢谢!

4

3 回答 3

1

你可以发布你的代码吗?我想像这样的事情会起作用:

link_to_remote("Delete item", :url => item_path, :method => 'delete', :confirm => 'Are you sure?')
于 2009-11-05T22:50:32.577 回答
0

我现在没有时间研究示例,但尝试在操作完成后使用:complete选项link_to_remote来删除元素,而不是:onclick.

http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M001645 - 查看“回调”部分。

它可能很简单:

<%= link_to_remote "Delete", :url => 
   {:controller => "pixel", :action => :destroy, :id => pixel.id}, :confirm => "You sure?",
   :complete =>"$(this).up(0).remove()" %>
于 2009-11-06T04:44:19.040 回答
0

我可以提出一个小建议吗,最好不要使用基于默认路由(控制器、方法、id)的路由,而是使用命名路由或在声明路由时免费提供的适当的宁静路由(例如地图.资源:像素)

我强烈建议您阅读rails 路由指南,它是对可以做什么和如何做的一个很好的摘要。

至于你的问题,你想要实现的都是基于突兀的javascript。这并不是说该link_to_remote方法不好,但如果您显示列表,它肯定会输出混乱的代码。在我看来,我会更干净更好,首先实现一个没有 javascript 的工作示例,然后不显眼地添加 javascript。这会增加开销吗?是的,但是您的代码会更简洁,并允许您轻松添加额外的逻辑(例如删除已删除的行),而无需在每一行上复制功能。

抱歉,我没有足够的时间提供示例,但是通过简单的谷歌搜索不显眼的 javascript rails 会产生很多结果,但这里有一个可以帮助您入门。

希望这会有所帮助,即使它有点离题:)

于 2009-11-06T10:08:50.487 回答