railsのcarrierwave利用で、post編集時に投稿済画像を削除される問題を修正

railsのgemの、carrierwaveを使用して、画像アップロード機能を実装しました。

 

が、postの編集時に、画像を再度参照しないと、

投稿済の画像が削除されてしまう問題に遭遇。

 

同様の問題がstackoverflowにて記事になっていました。

記事
http://stackoverflow.com/questions/17576309/rails-carrierwave-edit-update-form

この記事の回答の通りに、
posts_controller.rbのeditメソッドを以下のように修正したところ、うまくいきました。

------------------------------------------------
 def edit
  @post = Post.find(params[:id])
  if (@post.image.blank?) then
   # 画像がないときは何もしない。
  else
   # 画像があるときは、これで大丈夫。
   @post.image.cache!
  end
 end
-------------------------------------------------

 

一件落着。

 

あとはユーザによるログイン機能を追加します。