Неопределенный метод 'attachment_path' для модели движка Rails с вложением ActiveStorage

У меня есть Rails Engine и приложение Rails, оба работают под управлением Rails 6.0.0.rc1.

Движок определяет модель с вложениями ActiveStorage, например.

module Shop
  class Product < ApplicationRecord
    ...

    has_one_attached :image
    has_many_attached :images
  end
end

Использование этой модели как в представлении движка, так и в представлении приложения и попытка вызова = url_for(product.image) вызывает исключение undefined method 'attachment_path' for #<#<Class:XXX>:XXX>. product.image.attached? возвращает true, поэтому вложение доступно.

Этот код был извлечен из приложения Rails, где он отлично работал. Есть ли специальный помощник маршрута для вложений модели Rails Engine или какие-либо другие настройки, кроме rails active_storage:install, которые не упоминаются в документации?


person Adam Tomeček    schedule 12.06.2019    source источник


Ответы (2)


У меня это работает, используя main_app.url_for(product.image)!

Работает как в представлениях движка, так и в основных представлениях приложения Rails.

person Adam Tomeček    schedule 18.07.2019

В качестве справки для других, вы можете прочитать больше об этом в руководствах по Rails.

person fuentesjr    schedule 06.02.2020