heroku上的gem'Paperclip'

时间:2013-12-09 13:47:19

标签: ruby-on-rails ruby-on-rails-3 heroku paperclip

在我的系统中,我使用paperclip gem供用户上传他们喜欢的图片作为个人资料照片。

在本地,用户可以在更改个人资料照片时保存新照片。当然,在遥控器中,他们可以(我不知道回形针系统如何保存这些文件。)。但是当我这样做的时候就会推送heroku master",heroku日志总会显示错误消息,如

"ActionController::RoutingError (No route matches [GET] "/system/members/avatars/000/000/002/thumb/%E5%86%99%E7%9C%9F_(17).JPG"):" 

许多照片都消失了,虽然我之前可以看到这张照片" git push heroku master"。

我想这是因为回形针系统上传的图片可能不会被放入" app / assets / images" rails文件夹。你能告诉我如何解决这个问题吗?

☆_form.html.erb(成员)

   <div class="field">
    <%= f.label :'picture' %>
    <%= f.file_field :avatar %>
  </div>
  <div class="field">
    <%= f.label :Email %>
    <%= f.email_field :mail %>
  </div>

  <div class="actions">
    <%= f.submit  %>
  </div>

☆schema.rb

  create_table "members", :force => true do |t|
    t.string   "user"
    t.string   "pass"
    t.string   "name"
    t.string   "mail"
    t.text     "memo"
    t.boolean  "admin"
    t.datetime "created_at",          :null => false
    t.datetime "updated_at",          :null => false
    t.string   "field"
    t.string   "place"
    t.string   "experience"
    t.string   "url"
    t.string   "provider"
    t.string   "uid"
    t.string   "image"
    t.string   "avatar_file_name"
    t.string   "avatar_content_type"
    t.integer  "avatar_file_size"
    t.datetime "avatar_updated_at"
  end

1 个答案:

答案 0 :(得分:3)

Heroku不允许访问本地文件系统(Tempfiles除外)。你必须使用像S3这样的东西来存储你的图像。 Paperclip通过the S3 Storage modulethe Fog storage module开箱即用。