The helper is the best solution for the form_for case; Adam's class solution is what I'd use for the class-name case.
On Wed, Jun 17, 2009 at 9:15 AM, Adam Hooper <[email protected]> wrote: > > On Wed, Jun 17, 2009 at 11:36 AM, Nicholas Van > Weerdenburg<[email protected]> wrote: > > I created the following helper: > > def xhr_form_for *args, &block > > if request.xhr? > > remote_form_for *args, &block > > else > > form_for *args, &block > > end > > end > > To allow dynamic selection of form type based on whether the page is an > AJAX > > request or not. > > Is there a way to do this outside of a helper? Not that I wish to do evil > > and break any rules, but I'm curious for my understanding of HAML. > > Personally, I don't see this problem in my code, because: > - I never use remote_form_for, since unobtrusive JS works even better > - Usually my forms are in a separate partial (e.g., > "app/views/articles/_form.html.haml") so there's not much to indent > anyway. > > Neither is a reason for you to remove your helper; I just thought I'd > point out my general observation that indenting issues such as this > one do not cause many problems in the context of what I consider to be > programming best-practices. > > (Incidentally, your helper makes ERB code much cleaner: if you used it > in ERB, you still wouldn't need icky indentation tricks.) > > > The above may not work because of the block, but a similar case > > is: > > -if color==:blue > > .blue_div > > -else > > .red_div > > Is there a way to indent under the red div without using a helper? > > This is a very common situation: > > %div{:class => (color == :blue ? 'blue_div' : 'red_div')} > > IMO the one-line syntax is better: it keeps the document structure > perfectly clear. (You can throw in helpers or local variables to > improve the legibility of that one line.) > > Adam > > -- > My Website: http://adamhooper.com > My Blog: http://adamhooper.com/blog > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Haml" 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/haml?hl=en -~----------~----~----~----~------~----~------~--~---
