質問

私はMiniExiftoolでの作業ペーパークリップを取得しようとしています。

私は最終的にこれを書きました


# 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

私が入手ます:

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

保存しなければ! (EXIF [ 'date_time_original']がNULLでない場合でも)、すべてはうまく動作しますが、self.dateはNULLのままです。

私は本当にイライラしています。どのように私はペーパークリップがMiniExiftoolで作業を得ることができますか?

役に立ちましたか?

解決

わからない、しかし、あなたはEXIF [ 'date_time_original']かどうかを確認するかもしれません  あなたは、日付、または文字列を与えている、そしてそれは文字列である場合、それは適切に解析することができるかどうか。

あなたはまた、使用してみてください。

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

タグの代わりに
self.date = exif['date_time_original']
save!

これは検証をバイパスし、ちょうど更新された属性を保存します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top