【Rails】form_forで初期値が自動で入らないようにする対策方法

  • このエントリーをはてなブックマークに追加

データをアップデートさせる場合にform_forを使うと、初期値に現在のデータがデフォルトで入ってしまいます。

普通はこれで問題ないのですが、たまに、データベースのデータを加工しなければ表示出来ない時もあります。

どんな時に必要になる?

私の場合、データをバイナリデータとして保存していてそのままViewで読み込もうとすると、

Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8

というエラーが出てしまいました。

 

そういう場合の回避策です。

正しい回避策なのかわかりませんが、調べても見つけられなかったので書いておこうと思いました。

 

回避方法

まず、通常Viewに更新したいテーブルを渡す時。

 

そしてこちらがデフォルトの初期値を回避する書き方です。

 

指定したものに変えたいカラム名を指定して値を代入することで回避することが出来ます。

これでブランクなり加工した後の値をセットしたりすることが出来ます。

また、「@hoge.save」としない限りセットしたデータで元データが上書かれる事はありません。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*