Ошибки при попытке отобразить изображение из ActiveStorage в Rails 5.2 - PullRequest
0 голосов
/ 08 ноября 2018

Я работаю над приложением Rails, использующим Rails 5.2 и Ruby 2.3.7, и хочу прикрепить изображение к моему объекту Event, используя Active Storage.

Вот основные шаги, которые я предпринял

В config / environment / development.rb я подтвердил, что: config.active_storage.service =: local

Файлы

event.rb Я добавил эту строку: has_one_attached: event_image

events_controller.rb У меня есть атрибут: event_image, внесенный в белый список в event_params

events / _form.html.erb Я установил form_for для загрузки изображения

<%= f.label :event_images %>
<%= f.file_field :event_image %>

events / index.html.erb Я пытаюсь отобразить изображение с помощью

<% if event.event_image.attached? %>
<%= image_tag event.event_image %>
<% end %>

Ошибка: невозможно преобразовать изображение в URL: неопределенный метод 'attachment_url' для: 0x00007fca5dcef8b8>

<% if event.event_image.attached? %>
<%= image_tag url_for(event.event_image) %>
<% end %>

Ошибка: неопределенный метод `attachment_path 'для класса: 0x00007fca5e0109c0>: 0x00007fca5dacefe8>

у меня есть подтвердил, что active_storage_attachments и active_storage_blobs существуют в моей базе данных и вложения сохраняются там

Любые предложения будут очень признательны. Из всего моего поиска в Google, казалось бы, это должно работать

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

При работе с Spree вы должны использовать префикс url_for: main_app.url_for:

image_path(main_app.url_for(event.event_image))

Это действительно для Spree v3.6.5 и v3.6.6, но не уверен в других версиях.

0 голосов
/ 08 ноября 2018

Дальнейшее обновление по этому вопросу. Я повторил те же шаги в моем собственном приложении, и оно работало нормально. Это происходит только при работе с приложением, которое использует Spree

...