2013-11-04 83 views
0

將我的訪問密鑰ID /密鑰訪問密鑰直接發佈到模型中是否是一種好的做法?例如...使用帶回形針寶石的Amazon S3

has_attached_file :pic, :s3_credentials => { 
    :bucket => 'MY_BUCKET_NAME', 
    :path => ":rails_root/public/system/:attachment/:id/:style/:filename", 
    :url => "/system/:attachment/:id/:style/:filename", 
    :access_key_id => "12345Secret#blahblah", 
    :secret_access_key => "12345###" 
} 

這實際上工作,但是,當我將圖像複製到另一個模型......它不上載。

@other_user.pic = @user.pic(將圖像複製到其他用戶)

例如,如果該作品的形象是:S3Amazon/pic/01.working.jpg

複製的圖像具有像這樣的文件在一個數量的增加:S3Amazon/pic/02.working.jpg

此圖片無法打開,一直在尋找一種方法來完成這項工作。

+0

你的問題不明確。你曾經說過「將圖像複製到另一個模型」,而下一句你說「將圖像複製到另一個用戶」。你的情況是哪一個?我想相信所有'用戶'都有相同的模型。 – Litmus

+0

在這種情況下,您既不復制也不復制,只有2個實例變量引用相同的對象。你有沒有試過克隆,例如'@ other_user.pic = @ user.pic.clone' – engineersmnky

+0

我剛剛嘗試使用.clone,沒有工作。我的意思是,我創建了一個簡單的收件箱/消息系統btw不同用戶一個Facebook的消息。當一個用戶向另一個用戶發送帶有附加圖片的消息時,我希望將該相同圖片上傳到其他用戶的收件箱中。這是如何創建的? – Dan

回答

0

嘗試

@other_user.pic = @user.pic 
@other_user.save! 

並確保,如果你從控制檯這樣做,你做@other_user.reload檢查網址之前