带有ActiveStorage附件的Rails引擎模型的未定义方法'attachment_path'

时间:2019-06-12 18:08:24

标签: ruby-on-rails rails-engines rails-activestorage ruby-on-rails-6

我有一个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以外的任何设置的特殊路由帮助器?

2 个答案:

答案 0 :(得分:1)

我使用main_app.url_for(product.image)完成了此工作!

在引擎视图和主要的Rails应用视图中均可使用。

答案 1 :(得分:1)

仅作为其他参考,您可以阅读有关此in the Rails Guides的更多信息。