Forum: Ruby on Rails Newbie hitting a wall on first project, help, please!

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Bda45eb7682425ff84ca99eed5e86a77?d=identicon&s=25 lindsay donaghe (Guest)
on 2006-01-16 06:44
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
Bda45eb7682425ff84ca99eed5e86a77?d=identicon&s=25 lindsay donaghe (Guest)
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.
3f900b38ec3b2c45427c354722fa4ce3?d=identicon&s=25 Tom Fakes (tomfakes)
on 2006-01-16 06:49
(Received via mailing list)
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.
Bda45eb7682425ff84ca99eed5e86a77?d=identicon&s=25 lindsay donaghe (Guest)
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.
This topic is locked and can not be replied to.