我正在使用Rails 3.2 + Heroku + S3 +回形针在我的User
模型上存储图标。尽管模型没有保存4个图标字段。图像被正确处理并保存在S3上,并且没有发生错误。我还有另一个模型,通过Paperclip和S3存储文档。该模型在所有情况下都可以完美运行User
图标适用于本地,但不适用于Heroku。Rails,PaperClip,S3,Heroku:不保存模型图标字段
production.rb
相关配置
config.paperclip_defaults = {
:storage => :s3,
:s3_credentials => {
:bucket => ENV['AWS_BUCKET'],
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY']
}
}
用户模型代码:
class User < ActiveRecord::Base
attr_accessible :icon
has_attached_file :icon, :url => "/system/:rails_env/:attachment/:style/:hash.:extension",
:hash_data => ":class/:attachment/:id",
:hash_secret => "superSecretThing",
:styles => { :medium => "300x300>", :thumb => "100x100>" },
:default_url => "/blank.png"
...
控制器代码:(此代码是一种疯狂,因为我AJAXing文件Base64编码)
params[:user][:icon_data]
decoded_file = Base64.decode64(data)
begin
split_name = params[:user][:icon_file_name].split(".")
file = Tempfile.new([split_name[0..-2].join("."), ".#{split_name[-1]}"])
file.binmode
file.write(decoded_file)
file.close
@user.icon = open(file)
@user.icon_file_name = params[:user][:icon_file_name]
ensure
file.unlink
end
@user.save
我使用Paperclip attac在另一个模型上做了几乎完全相同的过程并且它完美地工作。在这两种情况下,附件都被正确保存到S3中,并且不会引发错误。用于Heroku日志中的控制器操作的This gist has example output。
我很困惑,因为其他模型工作正常。唯一真正的区别在于User
附件执行图像处理,但该部分似乎工作正常。
问题与this one相同,但该解决方案不适用。
想法?