form errorで作成されるcssクラスを変更する方法
railsで自動で生成されるform errorの属性を変更したい人っている気がします。
config/application.rb
で変更できるのですが、一部分だけ適用したい!って場合があると思います。
一部分だけ適用する方法です。
基本的なやり方
まずは基本的なやり方です。
config/application.rb
config.action_view.field_error_proc = Proc.new do |html_tag, instance| %Q(<div class="field_with_errors">#{html_tag}</div>).html_safe end
Rails アプリケーションを設定する | Rails ガイド
一部分のみに適用する方法
app/view_object/form_error.rb
module FormError ActionView::Base.field_error_proc = Proc.new do |html_tag, instacne| %Q(<div class="field_with_errors">#{html_tag}</div>).html_safe end end
参考:ActionViewのソースコード部分
rails/base.rb at 98131f751946d2d0a4868fd04ab058459fc28ed1 · rails/rails · GitHub
ここでhtml_tag
を正規表現で抽出して、特定のタグだけ属性を変えるなんていうこともできます。
もちろん、if文で条件判定が変更もできます。
あとは設置したい場所でinclude FormError
とすれば読み込まれます。
例えば、User controllerはこれを読むという風にすれば、色々といじることができます。
以上です。