Forum: Ruby on Rails Instance variables

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.
02925cbaf4a5730298764f97f771c156?d=identicon&s=25 Steve (Guest)
on 2009-02-18 19:54
(Received via mailing list)
Learning about instance variables and don't understand why the
instance variable "name" in the code example below is not visible
where as "title" is. Could someone explain this to me and why I hadto
use the "self.get_name()" method (which I don't understand since I
pulled it off the net) to get the value out of name?

Thanks
-------------------------------
class InstanceVariables
  @name = "Steve"

  def initialize()
    @title = "Software Eng"
  end

  def self.get_name
    @name
  end

  def get_name
    self.class.get_name    # Why can't I just return @name?
  end

  def get_title
    @title
  end

  def show_vars
    puts "name: #@name, title: #@title"  # name is not set, at least
that I can tell.
  end
end
------------------------
obj1 = InstanceVariables.new
puts obj1.get_name()
puts obj1.get_title()
obj1.show_vars()
------------------------
Steve
Software Eng
name: , title: Software Eng
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-02-18 19:57
(Received via mailing list)
On 18 Feb 2009, at 18:42, Steve wrote:

>
> Learning about instance variables and don't understand why the
> instance variable "name" in the code example below is not visible
> where as "title" is. Could someone explain this to me and why I hadto
> use the "self.get_name()" method (which I don't understand since I
> pulled it off the net) to get the value out of name?
>

Classes are objects in ruby and can have instance variables, so when
you set @name = "Steve" where you have put it you're create an
instance variable on the class rather than an instance variable on a
particular instance of the class.

Fred
02925cbaf4a5730298764f97f771c156?d=identicon&s=25 Steve (Guest)
on 2009-02-19 01:51
(Received via mailing list)
So what is the distinction between a class instance variable and a
class variable (ie @@name="Steve")?

On Feb 18, 1:56 pm, Frederick Cheung <frederick.che...@gmail.com>
81b61875e41eaa58887543635d556fca?d=identicon&s=25 Frederick Cheung (Guest)
on 2009-02-19 08:47
(Received via mailing list)
On Feb 19, 12:50 am, Steve <myde...@gmail.com> wrote:
> So what is the distinction between a class instance variable and a
> class variable (ie @@name="Steve")?
>
mostly the odd scoping stuff which means that @@foo in an instance
method  and @@foo in a class context refer to the same object.

Fred
This topic is locked and can not be replied to.