Pergunta

Eu estou tentando obter Paperclip trabalhar com MiniExiftool.

Eu finalmente escreveu o seguinte:


# Photo model

  belongs_to :user

  has_attached_file :picture

  after_picture_post_process :copy_exif_data

private

  def copy_exif_data
    exif = MiniExiftool.new picture.queued_for_write[:original].path
    self.date = exif['date_time_original']

    save!
  end

eu recebo:

Mysql::Error: Column 'user_id' cannot be null ...

Sem save! tudo funciona bem, mas self.date permanece nula (mesmo se exif [ 'date_time_original'] não é nulo).

Estou realmente frustrado. Como posso obter Paperclip trabalhar com MiniExiftool?

Foi útil?

Solução

Não tenho certeza, mas você pode verificar se exif [ 'date_time_original'] está dando-lhe uma data, ou uma corda, e se for uma string, se ele pode ser analisado corretamente.

Você também pode tentar usar

update_attribute(:date, exif['date_time_original'])

no lugar de

self.date = exif['date_time_original']
save!

Essa validação irá ignorar, e apenas salvar o atributo atualizado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top