在返回旧的Rails项目后,我发现没有任何破坏/删除链接工作,并且在确认弹出窗口中单击取消仍然会提交链接。
我的代码示例是:
<%= link_to 'Delete', admin_user_path(@user), :confirm => 'Are you sure?', :method => :delete %>
答案 0 :(得分:3)
如果您使用的是jQuery,则会出现此问题,如果没有,请查找类似的内容:
就我而言,我正在使用:
javascript_include_tag:所有%&gt;
它不起作用,但当我这样说时:
javascript_include_tag:默认%&gt;
有效!
答案 1 :(得分:0)
最后这是一个新手:
我有帮助者插入一个图标,比如edit_icon,它会为编辑图标返回一个漂亮的图像标记等。
其中一个辅助方法是delete_icon方法,我这样编写:
def delete_icon(object = nil) link_to image_tag('icons / delete.jpg',:width =&gt; 20,:border =&gt; 0),object,:confirm =&gt; “你确定吗?”,:method =&gt; :删除 端
这是DRY的一个(好)尝试,但是如果我只有def delete_icon(对象),而不是object = nil,那就更好了,因为当我调用它时它会让我更清楚我必须传递它反对毁灭的对象。使用要删除的对象调用相同的方法对我有效。
简而言之:如果你想干,请仔细检查你的辅助方法。
答案 2 :(得分:0)
在我的情况下,似乎是原型和rails.js的旧组合的问题。这个问题的答案促成了我::confirm option in Rails being ignored while using Rails 3 and jQuery UJS
所以我从https://github.com/rails/prototype-ujs/raw/master/src/rails.js下载了最新的rails.js,从https://ajax.googleapis.com/ajax/libs/prototype/1.7.0.0/prototype.js下载了最新的原型。
现在一切似乎都按预期工作了。
答案 3 :(得分:0)
这是一种使用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?"
答案 4 :(得分:0)
大多数情况下,这是因为您在加载jQuery代码之前或者在页面中的元素存在之前调用jQuery代码。
要解决这个问题,请使用以下内容:
$(document).ready(function () {
$('*[data-confirm]').click(function(){
return confirm($(this).attr('data-confirm'));
});
});
答案 5 :(得分:0)
以下是快速解决方案 - 只需替换符合数据确认
<%= link_to 'Delete', admin_user_path(@user), 'data-confirm' => 'Are you sure?', :method => :delete %>
答案 6 :(得分:0)
尝试使用
<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文件。