2017-05-12 31 views
0

我想将图像从一个模型迁移到另一个模型。 我的旧模式是这样的:Rails回形针将图像从一个模型复制到另一个模型

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 

但遗憾的是不工作。我收到以下错误:

No such file or directory @ rb_sysopen - /abcde/fghjk/test/post/1/logo/43023e427c1deb69789bbf7b75cf32810fbb6354

当我在目录中搜索散列时,它与某些散列不匹配。

不散列它将像一个迷人的工作,但我需要一个散列附件的解决方案。

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

+0

看着这里? http://stackoverflow.com/questions/14224080/ruby-copy-a-paperclip-attachment-from-one-model-to-another –

+0

是这样试过,并认为它应该工作之二我得到了上述错误。 – puQ

+0

也许你已经用定义的路径保存了旧图像,这与现在有所不同? –

回答

0

可以使用。路径读取该文件,然后指定文件对象:

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

我试过了,但奇怪的是计算出来的散列在路径上并不匹配现有的散列。 – puQ

+0

你确定这个文件是它存放的地方吗? url配置被设置为“url:'/ test/post/logo'”而没有散列,它看起来像路径配置不应该有:散列或者你必须添加:散列通配符到URL config – arieljuod

+0

也,该网址没有:id通配符! – arieljuod

相关问题