Skip to content

Instantly share code, notes, and snippets.

@suya55
Forked from andreimoment/customize_error.rb
Last active March 15, 2018 09:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suya55/5958c9d6359dc45ef6c1658024180a69 to your computer and use it in GitHub Desktop.
Save suya55/5958c9d6359dc45ef6c1658024180a69 to your computer and use it in GitHub Desktop.
Customize Field Errors with Rails 5 and Bootstrap
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|
html = ''
form_fields = %w(textarea input select)
tag_elements = Nokogiri::HTML::DocumentFragment.parse(html_tag).css "label, " + form_fields.join(', ')
tag_elements.each do |e|
if e.node_name.eql? 'label'
html = %(#{e}).html_safe
elsif form_fields.include? e.node_name
e['class'] = %(#{e['class']} error)
if instance.error_message.kind_of?(Array)
field_error_message = instance.error_message.uniq.join(', ')
else
field_error_message = instance.error_message
end
html = %(#{e}<div class="error">#{field_error_message}</div>).html_safe
end
end
html
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment