入力フォームでvalidationのエラーがあった時、フィールドを<div class="field_with_errors">タグで囲って強調してくれますが、レイアウトが壊れることがあります。その対応で<div>を<span>に置き換えるという記事をネット上で見ましたが、やはりレイアウトが乱れることがあるようです。(jQuery Mobileを使っている場合。)
なので、クラスだけ追加するコードを書いてみました。
#... # Rails' default error field may break layout. The followings treats that. ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| if html_tag.sub!(/class="/, 'class="field_with_errors ').nil? html_tag.sub! /(\/?>)/, ' class="field_with_errors"\1' end html_tag.html_safe end
Rails/Rubyの初級者でHTMLをオブジェクトとして扱う方法がよくわからなかったので、タグを文字列として扱いました。もしクラスの追加など簡単にできるライブラリがあればご紹介ください。