Рельсы / Скрепка, присоединяющиеся через командную строку - PullRequest
3 голосов
/ 24 мая 2011

У меня есть несколько файлов jpeg в папке на моем сервере, и я пытаюсь прикрепить их к соответствующим экземплярам Property с помощью задачи rake.

property.rb имеет следующий код:

  has_attached_file :temp_photo,
    :styles => PropertyImage::STYLES,
    :url => "/assets/:class/:attachment/:id_partition/:style_:basename.:extension",
    :path => "#{Rails.root}/public/assets/:class/:attachment/:id_partition/:style_:basename.:extension"

Я использую скрепку на других моделях, и никаких проблем не возникает, но у меня возникает проблема, когда я пытаюсь сделать следующее:

p = Property.find(id)
file = File.open(temp_file_path)
p.temp_photo = file
p.save

# => false

file.close
p.errors

# => "/tmp/stream20110524-1126-1cunv0y-0.jpg is not recognized by the 'identify' command."

Файл определенно существует, и я попытался изменить разрешения. Перезапуск сервера не помогает. Кажется, проблема в использовании командной строки, так как нормальный подход к форме / HTTP работает нормально. Это только временная настройка, поэтому я ищу рабочий способ импорта пакета файлов в модель скрепки моего приложения rails.

Есть предложения?

1 Ответ

4 голосов
/ 15 апреля 2012
path = 'target_file_path'
attach_name = 'temp_photo'

p = Property.find(id)
attach = Paperclip::Attachment.new(attach_name, p, p.class.attachment_definitions[attach_name.to_suym])

file = File.open(path) 
attach.assign file
attach.save

file.close
...