2009-07-10 8 views
1

Ich versuche, Paperclip mit MiniExiftool arbeiten.Nil Referenz beim Update

schrieb ich schließlich diese:


# 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 

ich:

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

Ohne sparen! alles funktioniert gut, aber self.date bleibt null (auch wenn exif ['date_time_original'] NICHT null ist).

Ich bin wirklich frustriert. Wie kann ich Paperclip mit MiniExiftool arbeiten?

Antwort

0

Nicht sicher, aber Sie könnten überprüfen, ob exif ['date_time_original'] gibt Ihnen ein Datum oder eine Zeichenfolge, und wenn es eine Zeichenfolge ist, ob es ordnungsgemäß analysiert werden kann.

Sie könnten auch

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

anstelle von

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

mit versuchen, die Validierung umgehen wird, und nur die aktualisierte Attribut speichern.