Rails lightbox2 ActionController :: RoutingError - PullRequest
0 голосов
/ 23 февраля 2019

Я пытаюсь внедрить lightbox2 в довольно простое приложение rails 5 и, похоже, получаю следующую ошибку:

ActionController::RoutingError (No route matches [GET] "/images/lightbox/bpo.jpg"):

Я выполняю следующие шаги: https://lokeshdhakar.com/projects/lightbox2/ & https://github.com/gavinkflam/lightbox2-rails

Все изображения для лайтбокса находятся в папке «images / lightbox», и изображения должным образом отображаются на странице, однако при нажатии на изображение, чтобы увеличить и вызвать лайтбокс, модальныйвыше ошибка маршрутизации отображается в журналах и изображение не появляется.

gallery_controller.rb

def index
 @images = Dir.chdir(Rails.root.join('app/assets/images')) do
    Dir.glob('lightbox/*.jpg')
    end
  end

index.html.erb

<div class="jumbotron jumbotron-fluid">
  <div class="container">
    <div class="row">
        <% @images.each do |image| %>
          <div class="col-md-3">
            <a href='<%= "images/#{image}" %>' class="img-fluid" data-lightbox="my-images">
              <%= image_tag image, class: "img-fluid" %>
            </a>
          </div>
        <% end %>
      </div>
  </div>
</div>

Следующее было добавлено в мой файл application.html.erb <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> непосредственно перед закрывающим тегом body.

Любая помощь очень ценится, так как я не понимаю, как поступить.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Просто попробуйте этот фрагмент кода.

<div class="jumbotron jumbotron-fluid">
  <div class="container">
    <div class="row">
        <% @images.each do |image| %>
          <div class="col-md-3">
            <a href='<%= image_path(image) %>' class="img-fluid" data-lightbox="my-images">
              <%= image_tag image, class: "img-fluid" %>
            </a>
          </div>
        <% end %>
      </div>
  </div>
</div>

Вам необходимо использовать вспомогательный метод image_path для href, поскольку активы поступают через конвейер активов.

0 голосов
/ 23 февраля 2019

Я никогда раньше не использовал lightbox2, но если бы это был я, я бы взял 3 разных решения

  1. , изменив "a" на "div"
  2. уберите href из "a"
  3. обработчик события перезаписи лайтбокса для предотвращения ошибки

надеюсь, что любой из них может решить вашу проблему

...