carrierwave,克隆对象如何包含图像

时间:2013-03-18 02:25:34

标签: ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2 gem

第一个我正在使用db mysql,但后来我改为postgres。

我编写了一些函数来将db从sql克隆到postgres。我在Image表中遇到了克隆db的问题。

ImageClone.all.each do |p|
    img = Image.new()
    img.imageable_id = p.imageable_id
    img.imageable_type = p.imageable_type
    img.uploader = p.uploader
    puts p.uploader #=> 'testing_image.jpg'
    img.save
end



=> #<Image id: 1, imageable_id: 1, imageable_type: "ProductType", uploader: nil> 

如何设置图片url ='testing_image.jpg'。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果要将附件复制到新对象中,则需要告诉新对象读取原始附件,如下所示:

new_object.attachment_file = File.open(old_object.attachment_file.path)

attachment_file是在附件类中定义为已装载上传者的属性:

class Object < ActiveRecord::Base
  mount_uploader :attachment_file, AttachmentUploader

现在你的新对象将文件加载到内存中。您可以保存,验证或丢弃它,就像任何其他附件一样!