[Nitro] Passing data from a controller to a template
james_b at neurogami.com
Fri Jun 2 20:50:41 EDT 2006
Jonathan Buch wrote:
>>>Then, in foo.xhtml, refer to @title and @content.
>>Is there a way to do this using accessors instead of instance variables?
> You are aJavaFan(String newTitle), aren't you ;D
Don't worry; we see this a lot in RubyLand (I mean ruby_land).
> No seriously, using instance variables is the correct way here (calling
> methods should be done in the Controller anyway) but you could sure
> create extra functions (accessors) for all your instance variables.
> class MyController
> attr :foo
> # public stuff 'n actions goes here
> def setFoo(f); @foo = f; end
> def getFoo; @foo; end
> But... aint that ugly?
Yeah, but why do it like that? Why not make the methods look like
def foo=(f); @foo = f; end
def foo; @foo; end
> Basically, the foo.xhtml IS the Controller instance, so you can do
> everyting you can do in the controller, no limits here, nitro is all
> about freedom ;)
Could not one just use the controller class (i.e, some_controller.rb) to
define data accesor methods, and omit the specific action methods?
So that, for example, MainController would not define an 'index' method;
index.xhtml would reference assorted methods defined in MainController
and render the results.
(This means that any business logic associated with the call to index
would either be in index.xhtml, or would emerge from the calls made by
index.xhtml to the various data accessor methods of MainController.)
http://www.ruby-doc.org - Ruby Help & Documentation
http://www.artima.com/rubycs/ - The Journal By & For Rubyists
http://www.rubystuff.com - The Ruby Store for Ruby Stuff
http://www.30secondrule.com - Building Better Tools
More information about the Nitro-general