I''m using the haml gem and it''s great, been using it for a while and I love it. I''ve got a problem trying to display the flash messages, if I do the following: - if flash[:notice] #flashNotice =flash[:notice] - else if flash[:error] #flashError =flash[:error] - end I get You don''t need to use "- end" in Haml. Use indentation instead: - if foo? %strong Foo! - else Not foo. Ok, so I take out "- end" and I get default.haml:21: syntax error, unexpected $end, expecting kEND So which is it? What do I have to do to get around this? My indentation is perfect, so I don''t see what else I can do. Incidentally this appears to be a new problem with the latest version of haml. Before I was using "- end" and it worked perfectly. Any help appreciated. Thanks Matt --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I realize this isn''t a direct answer to your question but to give you some context I have been using haml since it was first released and I have used in on many many projects. I absolutely cannot go back to rhtml because haml is so much more concise. Still though, I have no idea the answer to your question. Why? Because I had always heard that conditional logic should not be in my views. I realize this is a personal opinion but I figure I would show you how I would handle this: # application_helper.rb # even if flash error doesn''t exist this will return nil (empty as expected) def place_flash_message flash[:notice] ? flash[:notice] : flash[:error] end # view.html.haml = place_flash_message or if I really need conditional logic such as in: if logged_in? something else other thing I would simply create a helper or a helper block with capture. Anyways, in my opinion this improves readability and as a general rule of thumb in 2 years of rails development projects I have never felt the need to stick conditional logic directly in my view. Now assuming you discard all that, I think the correct method is not to put the end in haml which would make more sense in the haml way of doing things. Since I haven''t actually needed to do this, I am not sure the issue. Good luck -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Matt Harrison wrote:> > - if flash[:notice] > #flashNotice > =flash[:notice] > - else if flash[:error] > #flashError > =flash[:error] > - end >What about - if flash[:notice] #flashNotice = flash[:notice] - elsif flash[:error] # flashError = flash[:error] Your "else if" may be constructing an inner "if" whose indentation doesn''t resolve properly -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Ar Chron wrote:> Matt Harrison wrote: >> - if flash[:notice] >> #flashNotice >> =flash[:notice] >> - else if flash[:error] >> #flashError >> =flash[:error] >> - end >> > > What about > > - if flash[:notice] > #flashNotice > = flash[:notice] > - elsif flash[:error] > # flashError > = flash[:error] > > Your "else if" may be constructing an inner "if" whose indentation > doesn''t resolve properlyYes elsif solves it, I must''ve been using too many other languages recently :D Thanks Matt --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---