Dale very kindly sent me an example project yesterday which showed how
I use a popdown javascript calendar form callable from within my rhtml
page.
Apologies to Dale for showing some of his code here.
I noticed something separate which works but confused me a little as
to how. Basically it''s this:
scaffold.rhtml
<html>
<head>
<link href="/stylesheets/scaffold.css"
rel="stylesheet" type="text/css" />
<% if @use_calendar %>
<%= render "layouts/calendar" %>
<% end %>
<head>
<body>
<%= @content_for_layout %>
</body>
</html>
edit.rhtml
top of this file there is the line:
<% @use_calendar = true %>
Now I would have thought this would generate HTML which would
effectively have the contents scaffold.rhtml but with the contents of
edit.rhtml replacing the line <%= @content_for_layout %>.
Which would mean the <% @use_calendar = true %> line would fall into
the body section, the
<% if @use_calendar %><%= render "layouts/calendar"
%><% end %>
in the head section - BEFORE the <% @use_calendar = true %> line.
Am I misunderstanding how this works, or if not why does this all work
(ie. the layouts/calendar get rendered?)
Glenn
Confused as usual
Glenn Smith wrote:>Now I would have thought this would generate HTML which would >effectively have the contents scaffold.rhtml but with the contents of >edit.rhtml replacing the line <%= @content_for_layout %>. > >Which would mean the <% @use_calendar = true %> line would fall into >the body section, the ><% if @use_calendar %><%= render "layouts/calendar" %><% end %> >in the head section - BEFORE the <% @use_calendar = true %> line. > >Am I misunderstanding how this works, or if not why does this all work >(ie. the layouts/calendar get rendered?) > >I believe rendering in the presence of layouts works like this: - render the template normally with side-effects (e.g. @use_calendar is set) - store the output into @content_for_layout - now render the layout (which can access all instance variables as usual, @use_calendar and @content_for_layout being amongst them) Another common "trick", is to use a @page_title variable in your layout that can be defined individually in templates. Sebastian