繁体   English   中英

方法:=>:delete不起作用,而:confirm选项被忽略

[英]method: => :delete not working and :confirm option ignored

返回到旧的Rails项目后,我发现没有任何销毁/删除链接有效,在确认弹出窗口中单击“取消”仍会提交该链接。

我的代码示例是:

<%= link_to 'Delete', admin_user_path(@user), :confirm => 'Are you sure?', :method => :delete %>

如果您使用的是jQuery,则会出现此问题,如果没有,则查找类似的内容:

就我而言,我正在使用:

javascript_include_tag:全部%>

它不起作用,但是当我这样说时:

javascript_include_tag:默认%>

有效!

这是使用jQuery为所有删除按钮提供相同确认的方法:

;(function($){
  $(function(){
    $('input.destroy').click(function(){
      return confirm($(this).attr('data-confirm'));
    });
  });
})(jQuery);

您只需要确保将class =“ destroy”添加到每个元素,例如:

= button_to 'Delete', polygon, :method => :delete, :class => "destroy", :confirm => "Are you sure?"

在大多数情况下,发生这种情况是因为您在加载jQuery代码或页面中的元素存在之前就在调用jQuery代码。

为了解决这个问题,请使用以下命令:

$(document).ready(function () {
  $('*[data-confirm]').click(function(){
    return confirm($(this).attr('data-confirm'));
  });
});

这是快速的解决方案-只需替换符合数据的确认即可

<%= link_to 'Delete', admin_user_path(@user), 'data-confirm' => 'Are you sure?', :method => :delete %>

克里斯,嗨。 我有同样的问题。 我删除了Firebug,问题仍然存在。 我从另一个用户那里得知,他需要重新启动Firefox,但也无法正常工作。 有人说尝试Safari,那也不起作用。

最后,这是一个新手:

我有一些助手来插入一个图标,例如edit_icon,该图标为编辑图标等返回漂亮的图像标签。

这些帮助程序方法之一是delete_icon方法,我在其中编写如下:

def delete_icon(object = nil)link_to image_tag('icons / delete.jpg',:width => 20,:border => 0),object,:confirm =>'确定吗?',:method =>:delete结束

这是一次DRY的(好)尝试,但如果我仅拥有def delete_icon(object)而不是object = nil,那将是更好的选择,因为当我调用它时,必须将对象传递给它以销毁它,这使它变得更加清晰。 。 对要删除的对象调用相同的方法对我来说有效。

简而言之:如果要尝试干燥,请仔细检查辅助方法。

尝试使用

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script> 

之前

<%= javascript_include_tag "application" %> 

在您的布局中,并删除

//= require jquery

行在application.js中

对我来说就是这种情况。 不知道为什么它不能与原始的Rails jquery.js文件一起使用。

在我的情况下,原型和rails.js的旧组合似乎是一个问题。 这个问题的答案使我想到: 在使用Rails 3和jQuery UJS时,会忽略Rails中的:confirm选项

所以,我从网上下载最新的rails.js https://github.com/rails/prototype-ujs/raw/master/src/rails.js并从最新的原型https://ajax.googleapis.com/ajax/libs /prototype/1.7.0.0/prototype.js

现在一切似乎都按预期进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM