[英]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.