[Nitro] bump Re: Question about include files
James Britt
james_b at neurogami.com
Mon Jun 5 11:26:47 EDT 2006
Sorry for the repeat; I saw no reply to this, and I want to make sure
I'm documenting things correctly.
Thanks!
James Britt wrote:
> I'm trying to write abut how Nitro lets you reuse page chunks. One way
> is to use include files:
>
> <render href='some_partial_thing' />
>
> And then there'd be a file, some_partial_thing.xhtml or
> some_partial_thing.xinc in the template path.
>
> I had some problems getting this working right (I think there are
> ordering issues when setting Template.root and also calling mount_at for
> controllers), and noticed the messages coming from the WEBbrick server.
>
> I *think* that you can use the <render> syntax to invoke a method|action
> on the parent controller.
>
> I tried an experiment. I had my index.xhtml template include
>
>
> <render href='copyright' />
>
> And then added a 'copyright' method to the main controller, but did not
> provide a corresponding view file.
>
> So the code is this:
>
> def copyright
> STDERR.puts "MainController#copyright"
> "Hey! (c)"
> end
>
> and when i call the page I can see the STDERR message, but the string
> returned from the method never appears in the view.
>
> What am I misunderstanding about the use of controller methods in place
> of include files?
>
> If I change that method to use
>
> @out << "Hey! (c)"
>
> then it works, but that seems a bit hackish.
>
> I guess I'm hoping that <render> is just another way to invoke actions,
> but perhaps their place in the rendering sequence prevent this.
>
>
> I also now see that this:
>
>
> def copyright
> STDERR.puts "MainController#copyright"
> @c = "Hey! (c)"
> end
>
> will work fine when I have copyright.xhtml in the template path.
>
> But I can't seem to get the raw return value of the method to render.
>
> (BTW, after my code change to how "mount_at" works, I see that I can
> have multiple template paths for a controller by calling mount_at
> multiple times. I believe this is the intended behavior, based on the
> comments in include.rb and it referring to Nitro searching the
> "template_root stack" if the included file is referenced with a relative
> path. Is this correct?)
>
>
--
James Britt
"Take eloquence and wring its neck."
- Paul Verlaine
More information about the Nitro-general
mailing list