Domanda

Sto cercando di ottenere Paperclip lavorare con MiniExiftool.

Alla fine ho scritto questo:


# 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

ottengo:

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

Senza risparmia! tutto funziona bene, ma self.date rimane nulla (anche se exif [ 'date_time_original'] non è nullo).

Sono veramente frustrato. Come posso ottenere Paperclip lavorare con MiniExiftool?

È stato utile?

Soluzione

Non è sicuro, ma si potrebbe verificare se exif [ 'date_time_original']  ti dà una data o una stringa, e se è una stringa, se può essere analizzato correttamente.

si potrebbe anche provare a utilizzare

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

al posto di

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

che la convalida volontà di bypass, e basta salvare l'attributo aggiornato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top