Use background color to show error fields instead of wrapping them in a div
While this works in many cases, some pixel-perfect layouts may not be able to tolerate the 2-pixel padding around the text_field caused by the red border. An alternative is to change the background color of the offending field.
Include the following code in environment.rb (or use a "require" like I do):
ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| error_style = "background-color: #ffff80" if html_tag =~ /<(input|textarea|select)[^>]+style=/ style_attribute = html_tag =~ /style=['"]/ html_tag.insert(style_attribute + 7, "#{error_style}; ") elsif html_tag =~ /<(input|textarea|select)/ first_whitespace = html_tag =~ /\s/ html_tag[first_whitespace] = " style='#{error_style}' " end html_tag end
See my blog.inquirylabs.com for more Rails stuff.