Completely agree with Frederick's initiative to clean this up. Letting the form builder control the error markup is appropriate. A default configuration that renders a shared partial for errors might be a good approach -that would allow customization of layout without customization of code.
Otherwise, I like Josh's suggestion of having the structure remain constant (divs/spans present) is a good idea -Chris On Dec 26, 12:25 pm, Josh Susser <[email protected]> wrote: > The insertion of the div only when errors are present is a real pain. > It would be a lot easier to write CSS to style the forms if the div > (or span) was there even when there weren't errors, and then changed > class depending on whether there was an error. I don't think div vs > span is a big deal since you can style them to be inline or block as > you choose. Usually I end up writing my own form builder class so > this stuff isn't an issue for me, but the times when I do end up using > the default form builder my CSS always gets super ugly. > > I'm not familiar with how the Merb form generator does things. Maybe > it's time for a look. > > -- > Josh Susserhttp://blog.hasmanythrough.com > > On Dec 26, 2008, at 3:56 AM, Frederick Cheung wrote: > > > The form helpers by default wrap fields with errors in a div with an > > appropriate class. Unfortunately this means that you can't place these > > in <p> tags which many do (including for example the rails scaffold). > > It is a simple change to generate spans instead of divs (or generally > > make any sort of change that seems appropriate). > > > This may break the appearance of your app, whether it's because of > > style rules attached to div.fieldWithErrors that will no longer apply > > or because the styles that previously applied to broken html look > > different on correct html. Unfortunately this is the sort of breakage > > that is hard to verify automatically. So it seems there are three ways > > forward (not counting the 'do nothing' way: > > > - change the default settings to generate spans. It's not hard for you > > to change it back to divs in an initializer or something if you need > > it the old way > > - leave the current defaults but have a span based markup in the > > rails3_new_defaults initializer so that new apps will get 'good' > > behaviour > > - the current code sucks and it would be much nicer to have this sort > > of stuff controller by the form builder rather than some setting on > > ActionView::Base (and once you've done that rewrite then you still > > have to decide what actual markup is generated by default) > > > Opinions appreciated (assuming you're not drunk on christmas cheer) > > > Fred > > > Ticket is > > herehttp://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/1626 --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en -~----------~----~----~----~------~----~------~--~---
