【问题标题】:Duplicating record isn't duplicating image复制记录不是复制图像
【发布时间】:2016-07-31 14:46:24
【问题描述】:

我正在尝试复制我的记录并使用 amoeba gem。一切都很好,除了图片(通过carrierwave上传)

对于图像,我尝试像这样在变形虫中进行自定义设置:

amoeba do
    customize(lamba { |original_object, new_object|
        new_object.photo = original_object.photo
    })

但这只是返回图像的路径,加载时仍在查看单个记录 ID。

编辑:好的,所以我安装了 copy_carrierwave_file gem 并尝试实现它,但它似乎不起作用。我在 after_save 回调中调用这个函数

def create_duplicate
        puts 'Starting duplication'
        new_recipe = self.amoeba_dup
        new_recipe.original_id = self.id

        CopyCarrierwaveFile::CopyFileService.new(self, new_recipe, :photo).set_file
        new_recipe.save
end

我在服务器或任何地方都没有收到任何错误,但它什么也没做

【问题讨论】:

    标签: ruby-on-rails carrierwave amoeba-gem


    【解决方案1】:

    您可以手动复制文件:

    new_object.photo = File.open(original_object.photo.file.file) if original_object.photo.present?
    

    描述了另一种从本地文件上传文件的方法here

    你也可以看看copy_carrierwave_file gem

    【讨论】:

    • 我尝试了 gem 但它仍然无法正常工作,请查看编辑
    • 看起来应该可以了。您是否尝试过其他选项? (new_object.photo = File.open(original_object.photo.file.file) 或 new_object.photo = Rails.root.join("path/to/image.png").open)
    • 我做到了,我尝试了尽可能多的组合。它具有保存在数据库中的路径...但是它不会将其上传到应用程序中的新配方文件夹,因此当它尝试加载时,没有新配方 id 的文件夹
    • 可能是 new_recipe.remote_photo_url = photo_url_of_original_object 并在有帮助后保存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2011-07-23
    • 1970-01-01
    • 2019-02-05
    • 1970-01-01
    • 2019-04-13
    • 2023-03-21
    相关资源
    最近更新 更多