Ruby on rails 带carrierwave的动态图像版本

Ruby on rails 带carrierwave的动态图像版本,ruby-on-rails,ruby,carrierwave,Ruby On Rails,Ruby,Carrierwave,我在数据库中有一个大小列表,我需要将我的图像调整为,并使用carrierwave上传它们 是否有一些方法可以使用carrierwave来处理大小调整?现在我正在使用rake任务来完成它,不过我可能会切换到使用girl_friday演员,这样我就可以更容易地触发它 编辑 最后,我没有使用正确的carrierwave版本,而是使用carrierwave回调将调整大小的作业添加到后台处理器(在本例中是girl_friday) class ImageUploaderwidth} 结束 结束 结束 我不确

我在数据库中有一个大小列表,我需要将我的图像调整为,并使用carrierwave上传它们

是否有一些方法可以使用carrierwave来处理大小调整?现在我正在使用rake任务来完成它,不过我可能会切换到使用girl_friday演员,这样我就可以更容易地触发它

编辑 最后,我没有使用正确的carrierwave版本,而是使用carrierwave回调将调整大小的作业添加到后台处理器(在本例中是girl_friday)

class ImageUploaderwidth}
结束
结束
结束

我不确定这是否可行,但我认为您可以动态地将版本添加到您的上传器模型中

我在我的上传器上尝试了这个方法,并且能够通过调用这个方法在上传器上定义一个新版本

def self.defind_version(version_title, width, height)
  version version_title do
    process :resize_to_limit => [width, height]
  end
end
因此,您可以将该方法调用放入db表的create钩子中,该钩子生成版本列表


只是一个想法,我会在投入生产前进行大量测试

您需要从实例方法调用类方法“version”

process :selected_version

def selected_version
  aspect_ratio = model.aspect_ratio
  name = aspect_ratio.name

  self.class.version name do
    process :crop
    process :resize_to_fit => [aspect_ratio.width, aspect_ratio.height]
  end
end
process :selected_version

def selected_version
  aspect_ratio = model.aspect_ratio
  name = aspect_ratio.name

  self.class.version name do
    process :crop
    process :resize_to_fit => [aspect_ratio.width, aspect_ratio.height]
  end
end