Rails Paperclip复制图像,从一个模型到另一个模型

时间:2017-05-12 22:25:32

标签: ruby-on-rails ruby migration paperclip

我想将我的图像从一个模型迁移到另一个模型。 我的旧模型看起来像:

class Post < ActiveRecord::Base

     has_attached_file :logo,
                  url: '/test/post/logo',
                  path: ':rails_root/uploads/test/post/:id/logo/:hash',
                  hash_secret: 'secret',
                  styles: { thumb: ['200x150>', :jpg], medium: ['320x240>', :jpg], large: ['480x360>', :jpg] }
end

新模型看起来像旧模型。

目前,我尝试使用以下代码段迁移图片:

new_logo = post.logo
new_image.logo = new_logo
new_image.save

但不幸的是不起作用。我收到以下错误:

  

没有这样的文件或目录@ rb_sysopen -   / ABCDE / fghjk /测试/后/ 1 /标志/ 43023e427c1deb69789bbf7b75cf32810fbb6354

当我在目录中搜索哈希值时,它与某些哈希值不匹配。

如果没有散列,它将像魅力一样工作,但我需要一个带有散列附件的解决方案。

有人有想法解决我的问题吗?

1 个答案:

答案 0 :(得分:0)

您可以使用.path读取文件,然后分配文件对象:

new_image.logo = File.open(post.logo.path)
new_image.save