Ruby on rails 未定义的局部变量';图像';上课

Ruby on rails 未定义的局部变量';图像';上课,ruby-on-rails,io,shrine,Ruby On Rails,Io,Shrine,我想在将文件存储到S3之前对其进行加密。我用神龛上传,用锁箱加密Shiele#upload采用类似IO的对象,但不包括设置此对象所需的一些步骤。它只是说做一些类似的事情: class Photo < ApplicationRecord belongs_to :imageable, polymorphic: true validates_presence_of :image lockbox = Lockbox.new(key: ENV['LOCKBOX_MASTER_KEY'])

我想在将文件存储到S3之前对其进行加密。我用神龛上传,用锁箱加密
Shiele#upload
采用类似IO的对象,但不包括设置此对象所需的一些步骤。它只是说做一些类似的事情:

class Photo < ApplicationRecord
 belongs_to :imageable, polymorphic: true
 validates_presence_of :image

 lockbox = Lockbox.new(key: ENV['LOCKBOX_MASTER_KEY'])
 PhotoUploader.upload(lockbox.encrypt_io(image), :store)
end
班级照片
在这种情况下,
image
是未定义的局部变量


如果文件是用户上传的(并在控制器中列出了白名单),我如何在模型中访问它,以便在保存时执行此操作?

您可以在保存之前将其移动到
方法中。如果您当时想这样做,也可以在保存后将其更改为
(您的问题有点不清楚)

before_save :encyrpt_image

def encrypt_image
  lockbox = Lockbox.new(key: ENV['LOCKBOX_MASTER_KEY'])
  PhotoUploader.upload(lockbox.encrypt_io(self.image), :store)
end