:确认导轨无法正常工作

我刚刚开始使用ruby在rails上进行编码,而且我一直在关注使用比我正在使用的更过时版本的rails的指南。 我正在使用3.2.12

这是我的代码:

 "delete", :confirm => 'Are you sure?' %> 

根据我的理解,这些是传递给rails的符号,然后转换为html或javascript操作,然后弹出消息框并删除对象(如果适用)。 上面的代码会破坏对象,但不会弹出确认框。 为什么是这样? 另外,我首先得到以下内容:

  "delete", :confirm => 'Are you sure?' %> 

在任何情况下,使用link_to或button_to都不会弹出确认框。 下面是使用Chrome检查器检查时呈现的html。 jquery和jquery-ujs也加载到了这里,所以我不知道从哪里开始。

    

谢谢!

我必须在data属性中添加我的confirm属性才能使其工作。 我正在使用带有引导程序的rails 4。 我希望这可以帮助那些有这个问题的人。

 link_to 'Delete', @rule, method: :delete, data: { confirm: 'Are you sure you want to delete this alert?' } 

这依赖于jQuery,确保您拥有以下内容:

在你的Gemfile中

 group :assets do gem 'jquery-rails' end 

在您的assets / javascripts / application.js文件中,在//= require_tree .行之前//= require_tree .

 //= require jquery //= require jquery_ujs 

link_to和button_to之间的区别是HTTP动词。 link_to发出GET请求,button_to发出POST请求。 使用RESTful路由, delete操作是对controller / id的POST请求。 如果您向控制器/ id发出GET,则会将其分派给show动作。

AIUI,link_to与GET动词以外的任何内容都是一个坏主意。 一,右键单击不保留动词。 第二,你不希望机器人爬行页面跟随链接,从而触发delete操作,即使你可能需要登录才能真正修改数据库。

感觉相当愚蠢,但adblock阻止了消息框。 对于那个很抱歉。 一切都很好,我刚刚禁用adblock。

我在Chrome中运行了一个弹出窗口拦截器。 我刚刚将http://localhost:3000列入白名单,它对我有用。