Variable name convention

Hello All,

still a newbie in rails and would like to know when I shoud place a
'@' before a variable name and when not ?

Regards,

Joel

Hi Joel,

The @ symbol is (through my experience) generally used for sharing
variables between controllers and views. So in your controller, you'd
have something like:

@var = Users.find(...)

And in your view:

<%= "Hi, " + @var.first_name %>

But, again, that's just how I use it :slight_smile:

It has nothing to do with convention.

@foo is an instance variable

foo is a local variable

http://www.ruby-doc.org/docs/ProgrammingRuby/

In particular: http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html

joel wrote:

Hello All,

still a newbie in rails and would like to know when I shoud place a
'@' before a variable name and when not ?

Regards,

Joel

See here:
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html

Ok Great !

Thanks Guys for these resources !

Joel

foo could also be a method!

Be wary of the fact that local variables take precedence over methods, as shown in this example:

>> foo = "woot"
=> "woot"
>> def foo
>> "bar"
>> end
=> nil
>> foo
=> "woot"

To avoid that you can just write foo() i.e. with the parentheses, if
you want to call the function.

OK ! Nice information guys !

Thanks !

Joel

foo could also be a method!

Be wary of the fact that local variables take precedence over methods,
as shown in this example:

A common mistake related to this is

class Foo
   attr_accessor :bar
   def some_method
     bar = true
   end
end

This does not call the accessor, and does not set @bar (only the local
variable bar).

Fred