Rails 2の情報としては
- エラー表示で意図しない改行を解消する−fieldWithErrors、ActionView::Base、field_error_proc @ DoRuby
- fieldWithErrors によるビューの不具合 @ プログラマーkkの勉強/成長ブログ@ライブレボリューション(モバイル広告代理店)
というのがあったのですが、これをRails 3でそのまま使うとタグがそのまま出てしまう。CSSのdisplayプロパティをinlineにすればうまく行きそうなものが、インスペクタでみると計算されているらしいけど改行している。
そこで
- Overwrite custom field errors in Rails3 @ blog ~ fousa
の方法を使ってみた。以下引用。
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| "<div class=\"error\">#{html_tag}</div>".html_safe end
Rails 3ではstringをhtml_safe指定しないとタグがescapeされるのか。なるほど。