エラーのとき fieldWithErrorsが突っ込まれる

ActiveRecordのValidationでエラーになると該当箇所に<div class="fieldWithErrors">が勝手に突っ込まれます。これはこれでありがたいのですが、<div>で突っ込むことになっているため、勝手に改行されて入力フォームのレイアウトが崩れるのが玉に傷。突っ込まないようにしてもいいのですが、<div>の代わりに<span>を使って改行されないようにしてみました。

対処

『application_helper.rb』で『class Base』を再定義(オーバーライド)します。

module ActionView
  class Base
    @@field_error_proc = Proc.new{ |html_tag, instance| "<span class=\"fieldWithErrors\">#{html_tag}</span>" }
    cattr_accessor :field_error_proc
  end
end

スタイルシートに fieldWithErrorsのときの指定を追加します。

.fieldWithErrors {
  padding:3px;
  border:2px solid red;
}