[Nitro] Possible bug in Controller#mount_at
James Britt
james_b at neurogami.com
Sat Jun 3 00:42:24 EDT 2006
I've been trying to figure out the correct usage of 'mount_at' and was
puzzled because it worked about half the time.
I tried putting it right at the start of my controller
class Main < Nitro::Controller
self.mount_at( "/main/" )
..
and I also tried putting it in run.rb:
Main.mount_at( "/main/" )
Nitro.run(Main)
...
But still the templates for Main were not always found. If I edited
code while in debugging mode, certain classes got reload and then it
would work. But rarely would the templates path be correct right after
a restart.
It seems that other (Nitro) code is calling 'mount_at', and my paths
were getting boinked. I looked at lib/nitro/controller.rb , and saw
that 'mount_at' would always create an empty @template_root, and then
add some standard paths and whatever was passed to the method.
So I changed
@template_root = []
to
@template_root ||= []
And all was golden.
However, just because it works doesn't mean it is working the right way
for the right reason. But as best I can tell, each controller has
'mount_at' called implicitly; additional calls to mount_at shouldn't be
resetting the path, no?
--
James Britt
"You harmonize; then you customize."
- Wilson Pickett
More information about the Nitro-general
mailing list