我正在尝试将头像上传到用户,它正在开发但不在生产中
Rails4,Heroku,S3,Paperclip,Devise
开发中一切正常。当我推送到Heroku时,运行Heroku迁移,并尝试使用附件(:avatar)图像更新设计用户页面,它将图像URL返回为缺失。
在heroku日志中 - 它似乎正常运行,甚至将图像保存到S3(我检查过并且它们保存在我的S3存储桶中)。另外,如果我拉pg数据库,我可以看到与附件图像相关联的数据库中的列(4列)。在生产中,当我检查数据库时,附件文件列是空的,所以没有任何内容,但它们存储在S3中。
这有点奇怪吗?我以为Paperclip Docs说它会在发送到服务器之前保存到数据库并运行验证。
我的表格
我的观点(index.html.erb)
<%= image_tag post.user.avatar.url(:thumb) %>
这是成功保存到S3后的日志(heroku logs --tail)
如果我检查数据库,附件列仍为nil
让我感到困惑的是,这在开发中有效但在生产中无效,并且似乎与S3错误无关。
我做错了什么?
答案 0 :(得分:0)
好吧,浪费时间。
我终于厌倦了试图弄清楚这一点我最终经历了第二次和第三次的所有动作,无论出于何种原因,它现在都有效:\
- 我在config / initializers /
中添加了paperclip.rb(空文件)- 我将所有安全分支合并为主分支。
-Ran bundle install
- 推向github
-Ran Git推送heroku master
-Ran heroku运行rake db:migrate
这是第三次运行这些操作,所以老实说我不知道问题出在哪里,但它现在正在运行。
答案 1 :(得分:0)
你的表格应该有enctype =“multipart / form-data”,新版纸夹会强迫你进行验证:
validates_attachment_content_type:avatar,:content_type =&gt; / \ Aimage /.* \ Z /