繁体   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