カテゴリー:
Rails
タグ:
 Rails haml

このエントリーをはてなブックマークに追加
更新日時:
2016年11月07日(月)
作成日時:
2016年11月07日(月)

前の記事 / 次の記事

例えば

ひのきのぼう
ぬののふく
やくそう
どくけしそう

とかtextareaに入力して送信すると

ひのきのぼう
    ぬののふく
    やくそう
    どくけしそう

みたいになって戻って来ることがある。
戻って来ないこともあるのだけど相性とかバージョンによってこうなったりならなかったりしてる気がする。

こうなってしまう理由はhamlがインデントを意識してて、
今自分がいくつのインデントを持っているかをhamlが知っていて、
hamlがインデントを挿入したい衝動を抑えられなくて挿入してしまうのが原因。

なのでインデント意識しなくていいからってhamlを諭してあげればいい。
Railsの場合は例えば次のように = ではなくて ~ で変数を評価することで
hamlにインデントを意識しなくていいことを伝えることができる。

これを

= f.text_area :description

こうする

~ f.text_area :description

詳しいことはhaml公式サイトのリファレンスのどこかに書いてあった、気がする。
textarea以外の部分でも無駄にスペースが挿入されたら ~ で評価すれば大体直る。