2012-02-22 18 views
1

私はfile_columnプラグインを使用してフォーム内の画像をアップロードします。画像フィールド名は「画像」です。フォームをアップロードするときにファイルが送信されるかどうかを知る必要があります(イメージはオプションです)。実際、(after_validationコールバックで)画像が更新されると、別のフィールド(image_updated_at)を更新したいと思います。Railsファイルアップロード画像が送信されたかどうかを知る方法

このフィールドを更新するために画像が送信されるかどうかを知りたいだけです。画像がある場合のパラメータの内容は次のとおりです。

"image"=>#<ActionDispatch::Http::UploadedFile:0x10750dae0 @tempfile=#<File:/var/folders/p1/74mh4dd95zj0lpc42zm0h0kw0000gn/T/RackMultipart20120222-7745-s7rsy4-0>, @headers="Content-Disposition: form-data; name=\"wine[image]\"; filename=\"montenero2006.jpg\"\r\nContent-Type: image/jpeg\r\n", @content_type="image/jpeg", @original_filename="montenero2006.jpg">, 

画像が送信されているかどうかをテストしたいだけです。 self.imageの代わりに何をテストするのですか?

after_validation :set_image_date 

def set_image_date 
    self.image_updated_at = Time.now() if self.image 
end 

答えて

0

デシベル属性 after_validation上の変更のためのチェック:set_image_date

def set_image_date 
    self.image_updated_at = Time.now() if changes[:image_file_name] 
end 

あなたは以下の上記溶液わからないようにしている場合は信頼性の高いソリューション

class Wine < ActiveRecord::Base 

    def initialize(*args) 
    args.merge!(:image_updated_at => Time.now) if args[:image].present? 
    super 
    end 
end 
+0

ハムは、動作しませんされて。フィールドimage_updated_atは、新しい画像を送信すると決して変更されません。 –

+0

テーブルに関連付けられた列をモデル –

+0

にリストすることができます。私はたくさんの列を持っていますが、 "image"という名前のイメージを送信する列が1つだけあります。 –

関連する問題