I\'m using sorcery for authentication along with twitter bootstrap.
I\'d like to style my error messages on my signup form in the style of twitter\'s bootstrap by ch
From the link above, if you put the following inside class Application < Rails::Application of config/application.rb
config.action_view.field_error_proc = Proc.new { |html_tag, instance| 
  "<div class=\"field_with_errors control-group error\">#{html_tag}</div>".html_safe
}
Your input tags will have a red marker around them whenever validation fails
Note that if you are using SimpleForm, the accepted answer of using a Proc in application.rb won't work. Instead, you should edit the simple_form initializer. For example using Bootstrap 3.2:
config.wrappers :default, class: :input,
  hint_class: :field_with_hint, error_class: :'has-error' do |b|
  [...]
  b.use :hint,  wrap_with: { tag: :span, class: :'text-warning' }
  b.use :error, wrap_with: { tag: :span, class: :'text-danger' }
end
                                                                        I wanted to turn off the errors only for checkboxes, so I did this:
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  doc = Nokogiri::HTML::Document.parse(html_tag)
  if doc.xpath("//*[@type='checkbox']").any?
    html_tag
  else
    "<div class=\"field_with_errors\">#{html_tag}</div>".html_safe
  end
end
                                                                        Twitter Bootstrap 3.3.6 on Rails 5, this goes in an initializer customize_error.rb and works for me: 
ActionView::Base.field_error_proc = proc { |html_tag, _instance| "<div class=\"has-error\">#{html_tag}</div>".html_safe }
                                                                        Using Rails 6 with Bootstrap 4 you'll need to add the is-invalid class. Without getting too fancy I just did:
ActionView::Base.field_error_proc = proc do |html_tag, instance|
  html_tag.gsub("form-control", "form-control is-invalid").html_safe
end
                                                                        For Bootstrap 3.2 you could use sth. like this (add nokogiri gem to your Gemfile):
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
  html = %(<div class="field_with_errors">#{html_tag}</div>).html_safe
  # add nokogiri gem to Gemfile
  form_fields = [
    'textarea',
    'input',
    'select'
  ]
  elements = Nokogiri::HTML::DocumentFragment.parse(html_tag).css "label, " + form_fields.join(', ')
  elements.each do |e|
    if e.node_name.eql? 'label'
      html = %(<div class="control-group has-error">#{e}</div>).html_safe
    elsif form_fields.include? e.node_name
      if instance.error_message.kind_of?(Array)
        html = %(<div class="control-group has-error">#{html_tag}<span class="help-block"> #{instance.error_message.uniq.join(', ')}</span></div>).html_safe
      else
        html = %(<div class="control-group has-error">#{html_tag}<span class="help-block"> #{instance.error_message}</span></div>).html_safe
      end
    end
  end
  html
end
Place this code inside config/initializers/field_error_proc.rb file (create one if not exists)
This is slightly modified code from: Overriding ActionView::Base.field_error_proc in Rails