概要 input type="file"のは初期値の設定ができないのでにバリデーション失敗後の考慮が面倒ですよね? ただ、アップローダーにcarrierwaveを使っている場合は非常に楽に実装ができます 解説 画像アップロード時に{column_name}_cacheという名前でhidden_fieldをプラスしてあげればOKです. view = form_for @hogehoge |form| // 値がセットされている場合は画像を表示 = image_tag @hogehoge.hogehoge_image.url if @hogehoge.hogehoge_image.present? = f.file_field :hogehoge_image // 値の保持 = f.hidden_field :hogehoge_image_cache = f.submit