У меня есть типичное приложение для работы с CRUD с
приложения/просмотров/рецепт/show.html.haml содержащий строку
= link_to "Delete", recipe_path, method: :delete, data: {confirm: "Are you sure?" }, class: "btn btn-default"
Если я создаю новый рецепт в приложениях /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 имеет следующее под заголовком%
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= javascript_include_tag 'application', 'data-turbolinks-track' => true
= csrf_meta_tags
Не уверен, как его исправить, чтобы он не появлялся несколько раз
EDIT:. Такое же поведение даже после того, как я исправил код, передав @recipe
= link_to "Delete", recipe_path(@recipe), method: :delete, data: {confirm: "Are you sure?" }, class: "btn btn-default"
ИЗМЕНИТЬ 2: Если я удаляю турбовинты все вместе, это работает buttTurbolinks делает следующие ссылки в вашем веб-приложении быстрее, и, как я понимаю, они используются в большинстве проектов Rails. Так пытаясь увидеть, есть ли работа вокруг? Кажется, это довольно типичная вещь, которую можно сделать.
ИЗМЕНИТЬ 3:
Я добавил jQuery-turbolinks
Gemfile
gem 'jquery-turbolinks'
Файл манифеста JavaScript в следующем порядке:
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require turbolinks
Подтверждение повторяется несколько раз. Должен быть способ исправить это?
РЕДАКТИРОВАТЬ 4: Я нашел проблему. % Head в HTML был прав под% 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