【发布时间】:2015-06-25 02:49:25
【问题描述】:
我有一个典型的 CRUD 操作应用程序
apps/views/recipe/show.html.haml 包含一行
= link_to "Delete", recipe_path, method: :delete, data: {confirm: "Are you sure?" }, class: "btn btn-default"
如果我在 apps/views/recipe/new.html.haml 中创建一个新配方并被重定向到 apps/views/recipe/show.html.haml 并点击删除,然后它给我一次确认并删除食谱。
但是,如果我从典型类型的 index.html.haml 进入相同的显示页面,该页面链接到单个配方(例如 http://localhost:3000/recipes/29)并点击删除按钮,确认将弹出 3-4 次..(除非我先刷新那个页面,然后它只会弹出一次确认)。
我尝试添加 jQuery-turbolinks,但它仍然没有工作......
app/views/layouts/application.html.haml 在 %title 下有以下内容
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'application', 'data-turbolinks-track' => true
= csrf_meta_tags
不知道如何修复它,所以它不会弹出几次
编辑:即使我通过传递@recipe 修复了代码,行为仍然相同
= link_to "Delete", recipe_path(@recipe), method: :delete, data: {confirm: "Are you sure?" }, class: "btn btn-default"
编辑 2: 如果我一起删除 turbolinks,它会起作用 buttTurbolinks 可以更快地跟踪您的 Web 应用程序中的链接,据我所知,大多数 Rails 项目都使用它。所以想看看是否有解决方法?这似乎是一件非常典型的事情。
编辑 3:
我添加了 jQuery-turbolinks
宝石文件
gem 'jquery-turbolinks'
JavaScript 清单文件,按以下顺序:
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require turbolinks
确认仍然不止一次弹出。一定有办法解决吗?
编辑 4: 我发现了问题。 HTML 中的 %head 就在 %html 下方,并且没有正确缩进,因此 application.js 和其他内容包含在正文中而不是 head 部分中,因此而不是
!!! 5
%html
%head
%title Recipe App
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'application', 'data-turbolinks-track' => true
= csrf_meta_tags
应该是的
!!! 5
%html
%head
%title Recipe App
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'application', 'data-turbolinks-track' => true
= csrf_meta_tags
【问题讨论】:
-
您是否加载了任何自定义 javascript/coffeescript?
-
@fylooi 不是所有标准准系统应用程序。
标签: jquery ruby-on-rails ruby-on-rails-4 turbolinks