Hi Ruby and Rails gurus, I am not a newbie to programming but am only a day's worth of learning into Ruby and Rails. Starting out with the Agile Web Development with Rails book... I did the first project fine, generated a controller (Say) with a method (Hello) and an rhtml file (hello.rhtml) and everything works as expected until I try to add a local variable and access it from the rhtml file... What am I doing wrong? The controller code: class SayController < ApplicationController def Hello @time = Time.now end end The hello.rhtml code: <html> <head><title>Hello World!</title> </head> <body>Hello World! the time is <%= @time %></body> </html> The output: Hello World! the time is There's no "time".... I have recreated the project 3 times with the same results. I thought maybe there was something wrong with my install so I unstalled ruby, reinstalled it, did the update on it and rails, ran again, same results... Does anyone have any idea what I'm doing wrong? The code looks just like the book (other than the plain text in the rhtml file) and I'm not doing anything fancy... I would really appreciate some help. Ruby and Rails look extremely interesting and I don't want to abandon it because of something stupid that I can't get the simplest thing to work. Thanks much! Lindsay
on 2006-01-16 06:44
on 2006-01-16 06:46
I forgot to mention, this code works fine too: <html> <head><title>Hello World!</title> </head> <body>Hello World! the time is <%= Time.now %></body> </html> It's just when I try to use the @time variable from the controller that it doesn't work... Thanks.
on 2006-01-16 06:49
The action name in the controller should be lower case 'hello': def hello @time = Time.now end If an action can't be found, the view (hello.rhtml) is executed by default.
on 2006-01-16 07:02
Thank you... what a stupid oversight!!! Geeze... That's what you get for copying and pasting and staying up too late staring at things. Thanks again.