0

我正在使用 Solidus、Rails 开发电子商务网站。该网站允许您从各种选项中订购相框和打印件。要打印照片,用户必须上传照片的 jpg 文件。因此,为了允许我修改了订单表并添加了一个名为“附件”的回形针附件

我运行了以下命令

rails generate paperclip SpreeOrder attachment

哪个产生了迁移,然后我跑了rake db:migrate

然后我创建了一个 spree/order_decorator.rb 文件,并添加了has_attached_file

 module Spree::OrderDecorator
  has_attached_file :attachment, styles: {
      :medium => {
          :geometry => "640x480",
          :format => 'jpeg'
      },
      :thumb => { :geometry => "160x120", :format => 'jpeg', :time => 10}
  }, :processors => [:transcoder]

  validates_attachment_content_type :attachment, content_type: /\Aimage\/.*\z/

  Spree::Order.prepend self
end

在此之后我运行了服务器,并最终得到了这个错误

 undefined method `has_attached_file' for Spree::OrderDecorator:Module (NoMethodError)

我已经将固相线配置为仅与回形针一起使用,所以我真的很困惑为什么会出现这个错误,甚至后来我手动去并在 config/initializers 目录中生成了一个 paperclip.rb 文件,但我仍然得到同样的错误.

请帮忙解决这个问题!!谢谢你!!

4

1 回答 1

1

您应该在前置模块的类级别添加这些回形针方法:

def self.prepended(base)
  base.has_attached_file 
end
于 2020-09-04T09:45:57.873 回答