2017-05-12 98 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

相關問題