I'm new to Haml, and I've been using it for some non-rails web-app
work I've been doing. Recently I've run into some funny behaviour that
I'm at a loss to explain and I'm hoping someone can help me out.
I've defined this method to use when I want to render a template:
def render(file, vars = {})
template = File.read('templates/'+file)
engine = Haml::Engine.new(template, :locals => vars)
return engine.render
end
I have a line in one of my templates like this:
%= foo
Now, if I render this template and define :foo in the vars hash
everything works out as I would expect, but then if I render the
template again, passing an empty vars hash the value of :foo that I
had set previously will still be rendered in the template. If I
explicity set vars[:foo] to nil in #render it does not render, but as
soon as I remove that line, the last value of :foo starts rendering
again.
Is this supposed to happen? If so can anyone shed some light on why?
Is there a way to stop this from happening?
A little more info if it's helpful:
Render is getting called when I place a request to a webrick server.
(Obviously?) when I restart the server and call #render with vars
empty I get an error saying foo is an undefined variable.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---