Hamlではまったので、メモ
テキストエリアを使った入力画面の後に確認画面を出す時に以下のように記述すると
= f.hidden_field :memo
このように出力されてしまいます。
<input type="hidden" value="abc
dhij
xxxx" name="user[memo]" id="user_memo" />
このままの状態で入力画面に戻ったり、次の画面に遷移すると無用なスペースが入ってしまい入力した内容と違う状態でデータが保存されてしまいます。
上記の例で言うと
abc
dhij
xxxx
と入力したのに確認画面では以下のようにデータが書き換えられてしまいます。
abc
dhij
xxxx
入力画面⇔確認画面を繰り返すとどんどんスペースが増えてしまいます。
Hamlで書く場合は以下のように書きます。
= preserve f.hidden_field :overview
これで正しく出力されます。
<input type="hidden" value="#abc
dhij

xxx" name="user[memo]" id="user_memo" />
なおfind_and_preserve
はタグの中身だけが対象となるので、hidden
などに対しては使えません。
半日くらいはまったので、メモしておきます。
最後に
RailsでHamlを使うケースはそれなりにあると思ったのですが、このような基本的な文献が見つからずコードを追って解決しました。
以外とみんなHamlは使って無いのかな・・・?
デザイナーの事を考えると使わ無いほうがいいのかな・・・と悩みどころです。