2013-03-11 64 views
2

我正在將我的導軌應用程序從2.3升級到3.2,並且我遇到了回形針問題。我的應用程序以前使用回形針v2.3.5,現在我使用軌道3.0.20與回形針v3.3.1回形針2.3.5到3.3.1導致url不同於路徑

當我嘗試上傳一個頭像到S3時,會出現問題。看起來回形針在將它發送到S3之前已經逃脫了路徑,但是當我詢問特定樣式的url時,url使用了路徑的非轉義版本,這導致S3出現「NoSuchKey」錯誤(更像是找不到404)

在我的模型我有

Paperclip.interpolates :last_modified do |attachment, style| 
    attachment.instance.updated_at.to_i 
end 

:path => "folder/:id/:style.:extension?:last_modified", 
:url => ":s3_domain_url", 



所以老版本的我的應用程序使用URL從S3一樣是:

http://my-bucket.s3.amazonaws.com/folder/123/thumbnail.png?123456789 



但現在,每次我上傳頭像,S3將存儲這樣的網址:

http://my-bucket.s3.amazonaws.com/folder/123/thumbnail.png%3F123456789 

,並要求我爲縮略圖風格的URL模式,將返回:

http://my-bucket.s3.amazonaws.com/folder/123/thumbnail.png?123456789 

其中S3可以」找到。



我知道這似乎是一個容易解決的問題,但我主要關注的是,生產應用程序有很多很多的照片的用戶,並更新所有的圖像是一項棘手的任務,並手動逃逸問號不是解決方案。

回答

3

我剛想出如何解決類似這個問題。有一個新的escape_url選項。也許嘗試將其轉換爲false

:path => "folder/:id/:style.:extension?:last_modified", 
:url => ":s3_domain_url", 
:escape_url => false 
+0

它應該被標記爲正確答案!謝謝。 – soutoner 2015-09-14 15:19:45