Heroku, как заполнять картинки несущей волной, используя file.open и rake - PullRequest
1 голос
/ 07 марта 2012
  rake db:populate (works)
  heroku run rake db:populate (works to some extent)

Я столкнулся с проблемой, когда пытался заполнить базу данных на героку.Локально следующее работает отлично, и мой сайт заполнен изображениями.

  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 успешно заполнены данными (название, жанр и т. Д.).Это только изображение, которое не создается на героку.Я подозреваю, что это как-то связано с

  File.open

Пробовал такие вещи, как смена каталога, но безуспешно, может быть, я просто использую неправильный каталог

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

Я использую стек кедров, рельсы3.2, Carrierwave и активы предварительно компилируются перед загрузкой.Это только для целей тестирования, чтобы проверить с различными макетами.Создание MovieProject и назначение изображения работает на Heroku, но использование вышеуказанных методов, похоже, не подходит.

//

Спасибо, Джон

1 Ответ

0 голосов
/ 10 марта 2012

Сегодня вечером столкнулся с теми же проблемами и исправил их следующим образом:

Во-первых, убедитесь, что в загрузчике или инициализаторе есть что-то подобное:

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

Теперь используйте метод cache! носителя * вместо 1007 *. Я также называю save! потом

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

Надеюсь, это поможет, дайте мне знать, если это не так

...