簡體   English   中英

Heroku如何使用file.open和rake填充圖像載波

[英]Heroku how to populate images carrierwave using file.open and rake

  rake db:populate (works)
  heroku run rake db:populate (works to some extent)

當我嘗試在heroku上填充數據庫時遇到了一個問題。 在本地,以下各項均能正常工作,並且我的網站中裝有圖像。

  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

所有MovieProjects均已成功填充數據(標題,流派等)。 它只是在heroku上未創建的圖像。 我懷疑這與

  File.open

嘗試過諸如更改目錄之類的事情,但沒有成功,也許我只是使用了錯誤的目錄

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

我使用雪松棧,rails 3.2,Carrierwave,並且資產在上載之前進行了預編譯。 這僅用於測試目的,以測試不同的布局。 創建一個MovieProject並分配圖片可在Heroku上使用,但似乎無法使用上述方法。

//

謝謝喬恩

今晚遇到同樣的問題,並通過以下方式解決了該問題:

首先,請確保您的上傳器或初始化程序中包含以下內容:

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

現在,使用carrierwave的cache! 方法,而不是store! 我也叫save! 然后

 @uploader.cache!(File.open("app/assets/images/photos/picture.jpg"))
 @movie_project.image=@uploader
 @movie_project.save!

希望這會有所幫助,讓我知道是否可以

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM