Не уверен, но вы можете проверить, есть ли exif ['date_time_original']
дает вам дату или строку, и если это строка, можно ли ее правильно проанализировать.
Вы также можете попробовать использовать
update_attribute(:date, exif['date_time_original'])
вместо
self.date = exif['date_time_original']
save!
Это пройдет проверку и просто сохранит обновленный атрибут.