2013-12-09 62 views
1

在我的系統中,我使用paperclip gem讓用戶上傳他們喜歡的圖片作爲個人資料圖片。herom'paperclip'on heroku

在本地,用戶可以在更改個人資料照片時保存新照片。在遙控器中,他們當然可以(我不知道回形針系統如何保存這些文件)。但是,當我做「混帳推Heroku的主人」,Heroku的原木總是告訴我的錯誤消息像

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

而且很多圖片消失了,雖然我可以看到之前「混帳推Heroku的主人」的照片。

我想這是因爲通過回形針系統上傳的圖像可能不會放入rails應用程序文件夾的「app/assets/images」中。你能告訴我如何解決這個問題嗎?

☆_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 

回答

3

的Heroku不允許訪問本地文件系統(除臨時文件)。你將不得不使用類似S3的東西來存儲你的圖像。回形針通過the S3 Storage modulethe Fog storage module開箱即可。

+0

這是一個很好的S3集成教程。這很簡單。 https://devcenter.heroku.com/articles/paperclip-s3 –

+0

Mr.jyurek和Yosep Kim,非常感謝你!我會嘗試。 –