Это было это. Я где-то читал, что ты должен был это сделать, но, наверное, нет. Большое спасибо за вашу помощь, очень признателен!

ользую Paperclip с Imagemagick в своем приложении, используя Amazon S3 для хранения. Все отлично работает в разработке. Но в производстве на Heroku он работает неправильно.

Изображение загружается в Amazon S3, и создание эскизов работает, так что часть комбо Paperclip, Imagemagick и S3 работает нормально. Но по какой-то причине поля модели Paperclip не заполняются:

imagestore_file_name: 
imagestore_content_type: 
imagestore_file_size: 
imagestore_updated_at: 

В процессе разработки все это заполняется, но не в производстве на Heroku. Когда я пытаюсь отобразить изображение в производственном приложении (Heroku), оно говорит, что оно отсутствует, хотя оно определенно присутствует в S3. Что может быть причиной этой ошибки? Спасибо за чтение.

Подробности:

ruby 1.8.7
Rails 3.0.1
Stack: bamboo-mri-1.9.2

РЕДАКТИРОВАТЬ:

Вот класс. Класс Image расширяет Media, который расширяет ActiveRecord :: Base.

class Image < Media

  attr_accessor :imagestore_file_name
  attr_accessor :imagestore_content_type
  attr_accessor :imagestore_file_size
  attr_accessor :imagestore_updated_at


    has_attached_file :imagestore, 
        :storage => :s3, 
        :s3_credentials => "#{RAILS_ROOT}/config/amazon_s3.yml", 
        :path => "/:style/:filename",
        :styles => { :medium => "800", :thumb => "150" }


end

Вот соответствующий журнал Heroku (я думаю, иногда трудно сказать о Heroku)

Parameters: {"authenticity_token"=>"a9+UnIlVH5HRetoN45IlGlGYoeEkpqQ1Qskpe4EGuHw=", "media_input"=>"", "imagestore"=>#<File:/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/RackMultipart20110110-17158-10fuv0p>, "type"=>"uber", "name"=>"Star Wars", "detail"=>""}
[paperclip] identify -format %wx%h '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if.jpg[0]' 2>/dev/null
[paperclip] convert '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if.jpg[0]' -resize "800" '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if20110110-17158-ta9egy' 2>/dev/null
[paperclip] identify -format %wx%h '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if.jpg[0]' 2>/dev/null
[paperclip] convert '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if.jpg[0]' -resize "150" '/home/slugs/44ca6411-6e76-4e7d-8239-a956dc3979c0/mnt/tmp/stream20110110-17158-1uyk3if20110110-17158-13448fs' 2>/dev/null
[paperclip] Saving attachments.
[paperclip] saving /original/starWarsart2.jpg
[paperclip] saving /medium/starWarsart2.jpg
[paperclip] saving /thumb/starWarsart2.jpg
[paperclip] Saving attachments.
Redirected to !!my site url is here!!
Completed 302 Found in 1029ms

Вот соответствующие поля из созданной записи изображения:

  imagestore_file_name: 
  imagestore_content_type: 
  imagestore_file_size: 
  imagestore_updated_at:

В разработке, эти поля имеют данные, и я могу загрузить изображения. Но не в производстве. Спасибо за вашу помощь.

 DanneManne11 янв. 2011 г., 07:03
Я не сталкивался с чем-то подобным сам, поэтому не могу сказать наверняка, но вы убедились, что используете разные корзины S3 для разработки и разработки? В противном случае, не могли бы вы включить код для вашей модели, который содержит вложение скрепки? И это также поможет увидеть файлы журналов, когда вы на самом деле пытаетесь загрузить изображение
 ben11 янв. 2011 г., 08:31
Извините, должен был включить это для начала. Я отредактировал это в вопросе. Спасибо за вашу помощь.
 Aditya Sanghi11 янв. 2011 г., 09:10
Можете ли вы сделать это в своей среде разработки, но с запуском сервера в производственном режиме?

Ответы на вопрос(1)

Решение Вопроса

что проблема в том, что вы указали attr_accessor для атрибутов скрепки. Это не нужно. На самом деле у меня возникла та же проблема, что и у вас, когда я добавил эти строки в свою модель Так что должно быть достаточно, чтобы удалить эти строки.

 ben11 янв. 2011 г., 09:49
Это было это. Я где-то читал, что ты должен был это сделать, но, наверное, нет. Большое спасибо за вашу помощь, очень признателен!

Ваш ответ на вопрос