LoginSignup
7
4

More than 5 years have passed since last update.

RailsでHamlを使ってテキストエリアの確認画面を出す時の注意点

Last updated at Posted at 2015-12-24

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&#x000A;dhij&#x000A;&#x000A;xxx" name="user[memo]" id="user_memo" />

なおfind_and_preserveはタグの中身だけが対象となるので、hiddenなどに対しては使えません。
半日くらいはまったので、メモしておきます。

最後に

RailsでHamlを使うケースはそれなりにあると思ったのですが、このような基本的な文献が見つからずコードを追って解決しました。
以外とみんなHamlは使って無いのかな・・・?

デザイナーの事を考えると使わ無いほうがいいのかな・・・と悩みどころです。

7
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4