:确认导轨无法正常工作
我刚刚开始使用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
列入白名单,它对我有用。