Nil Referência quando Atualização
-
12-09-2019 - |
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?
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