有条件的:在link_to_remote中确认

时间:2009-11-05 20:38:24

标签: ruby-on-rails conditional onclick link-to-remote

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

我的代码看起来像这样:

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

谢谢!

3 个答案:

答案 0 :(得分:1)

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

link_to_remote("Delete item", :url => item_path, :method => 'delete', :confirm => 'Are you sure?')

答案 1 :(得分:0)

我现在没有时间去寻找一个例子,但尝试使用:complete选项link_to_remote来删除操作完成后的元素,而不是:onclick。< / p>

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()" %>

答案 2 :(得分:0)

我可以提出一个小建议,使用基于默认路线(控制器,方法,身份证)的路线理想情况下不应使用,而是使用命名路线或在申报路线时免费提供的适当宁静路线(例如,map.resources:pixels)

我强烈建议阅读the rails routing guide,这是一个很好的摘要,可以做什么以及如何做。

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

很抱歉,但我没有足够的时间提供示例,但是对于不显眼的javascript rails进行简单的Google搜索会产生很多结果,但here is one可以帮助您入门。

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