为 Spree 订单添加回形针附件 Table,

Adding Paperclip Attachment to Spree Orders Table,

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

的回形针附件

我运行以下命令

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)

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

请帮忙解决这个!! 谢谢!!

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

def self.prepended(base)
  base.has_attached_file 
end