2012-03-07 37 views
1
rake db:populate (works) 
    heroku run rake db:populate (works to some extent) 

我試圖在heroku上填充數據庫時遇到了問題。本地以下作品完美,我的網站是與圖像填充。Heroku如何使用file.open和rake填充圖像carrierwave

namespace :db do 
    desc "Fill database with sample data" 
    task populate: :environment do 
    . 
    . 
    @uploader = ImageUploader.new(@movie_project, :image) 
    @uploader.store!(File.open("app/assets/images/photos/picture.jpg")) 
    @movie_project.image = @uploader 

所有MovieProject都成功地填充了數據(標題,流派等)。它只有在heroku上沒有創建的圖像。我懷疑這有什麼做像改變目錄,但沒有成功

File.open 

試過的東西,也許我只是使用了錯誤的目錄

app/assets/images => public/assets/ ? 

我用雪松堆棧,導軌3.2,Carrierwave和資源在上傳之前進行了預編譯。這只是爲了測試目的,以測試不同的佈局。 創建一個MovieProject並分配一個圖片在Heroku上的作品,但似乎並不使用上述方法。

//

感謝喬恩

回答

0

遇到同樣的問題,今晚,固定它的方式如下:首先

,請確保您有這樣的事情在你上傳或初始化:

config.cache_dir = "#{Rails.root}/tmp/uploads" 

現在,使用carrierwave的cache!方法,而不是store!。我也呼籲save!事後

@uploader.cache!(File.open("app/assets/images/photos/picture.jpg")) 
@[email protected] 
@movie_project.save! 

希望這會有所幫助,讓我知道,如果它不

+0

更改爲緩存我不工作,它實際上並不甚至我的本地計算機上運行。我的初始化程序:carriewave.rb CarrierWave.configure do | config | config.cache_dir =「#{Rails.root}/tmp/uploads」 end – 2012-03-11 22:37:58

+0

如果我註釋掉carriewave.rb初始值設定項,它可以在本地使用緩存。照片仍然使用#{Rails.root}/tmp/uploads進行緩存,因此我不確定錯誤是什麼,但未分配給movie_project。 – 2012-03-11 22:55:32