Heroku如何使用file.open和rake填充图像载波

时间:2012-03-07 00:08:46

标签: ruby-on-rails heroku rake carrierwave populate

  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

所有MovieProject都成功填充了数据(标题,流派等)。它只是在heroku上没有创建的图像。我怀疑这与

有关
  File.open

尝试改变目录但没有成功的事情,也许我只是使用了错误的目录

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

我使用雪松堆栈,rails 3.2,Carrierwave并在上传之前预先编译资产。这仅用于测试目的,以测试不同的布局。 创建一个MovieProject并分配图片适用于Heroku,但似乎没有使用上述方法。

//

感谢Jon

1 个答案:

答案 0 :(得分:0)

今晚遇到同样的问题,并按照以下方式解决:

首先,请确保您的上传器或初始化程序中包含以下内容:

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!

希望这有帮助,如果不是,请告诉我