У меня есть приложение Rails 5.2.2, использующее Turbolinks и Lightbox 2. Недавно я изменил jquery-ujs
на rails-ujs
, чтобы исправить проблему, когда подтверждающие окна сообщения отображались несколько раз. Теперь лайтбокс работает только после обновления страницы sh. Я знаю, что это проблема с Turbolinks и Lightbox, но я не могу понять, как это исправить.
app / views / layouts / application. html .erb
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= favicon_link_tag 'favicon.ico' %>
<%= csrf_meta_tags %>
<%= render 'layouts/shim' %>
<%= yield :head %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
</head>
<body>
<%= render 'layouts/header' %>
...
</body>
</html>
app / views / laser_sheets / _laser_sheet. html .erb
...
<%= link_to laser_sheet.nest.url, data: { lightbox: 'nests', title: laser_sheet.name } do %>
<i class="fa fa-fw fa-picture-o"></i>
<% end %>
...
Gemfile
...
gem 'turbolinks', '~> 5.2.0'
gem 'lightbox2-rails', '~> 2.8.2'
...
Я попытался добавить следующее в конец application.js
, но это не имело значения:
app / assets / javascripts / application. js
//= require jquery
//= require rails-ujs
//= require turbolinks
//= require bootstrap-sprockets
//= require raphael
//= require morris
//= require lightbox
//= require_tree .
$(document).on('turbolinks:load', function(event) {
lightbox.init();
});