0

我有一个 csv 文件要导入到 heroku 中的数据库,并且 csv 包含图像名称,我必须将图像放在一个文件夹中并在导入代码中指定其路径。所以我尝试将图像保存在公用文件夹和资产文件夹中,它返回错误如下

Errno::ENOENT (No such file or directory - /images/picture17.jpg):

我什至在 production.rb 中设置为 true 如下

 config.serve_static_assets = true

但我仍然得到错误。请帮我。

编辑:

csv_text = File.read('sample.csv')
        csv = CSV.parse(csv_text, :headers => true)
        csv.each do |row|
            Model.create!({"name"=>row['name'], "age"=>row['age'], "pic"=>File.open("/images" + row['pic_name'])})
        end
4

1 回答 1

0

当使用免费计划时,Heroku 会每隔一段时间删除您的 public/assets 目录

(我想每天一次。)因此,您应该通过自 3.1+ 以来已集成在 Rails 中的资产管道提供资产

尽管您提到您正在导入一个 CSV 文件,这让我猜想实际上有一个为此应用程序设置的数据库。

让我向您介绍 CarrierWave 结合 Cloudinary 的甜蜜生活。

花时间阅读 CarrierWave 文档:https ://github.com/jnicklas/carrierwave

Cloudinary 文档:http ://cloudinary.com/documentation

好的部分来了:Heroku 实际上与 cloudinary 集成得非常简洁https://addons.heroku.com/cloudinary

只需在您的上传器中包含 Cloudinary::CarrierWave 标头,这应该可以解决问题!

于 2013-02-20T11:34:40.130 回答