Attr_writer and hash


#1

Hi,

class Test
attr_writer :username, :password
def initialize
h = {:username => ‘user’, :password => ‘pass’}
end
end

t = Test.new
p t.h[username]

I am trying to access a hash key after instantiating the Test class,
but I am having a slight problem.

Could someone please direct me?

Thanks

Aidy


#2

On 7/14/07, aidy removed_email_address@domain.invalid wrote:

p t.h[username]

I am trying to access a hash key after instantiating the Test class,
but I am having a slight problem.

Could someone please direct me?

Thanks

Aidy

class Test
attr_accessor :h
def initialize
@h = { :username => ‘user’, :password => 'pass }
end
end

attr_accessor means you can read and write to the object. The object
in this case is the hash, not the key or value. Does that make sense?

hth,
Todd


#3

p t.h[username]

I am trying to access a hash key after instantiating the Test class,
but I am having a slight problem.

Could someone please direct me?

Thanks

Aidy

Hi Aidy,

It looks like you’re mixing two different ways of getting at username
and password here.
Here are two separate approaches you could try

class Test
attr_accessor :username, :password

def initialize
@username= ‘user’
@password= ‘pass’
end
end

t= Test.new
puts t.username
puts t.password

class Test2
attr_accessor :details

def initialize
@details= {:username => ‘user’, :password => ‘pass’}
end
end

t= Test2.new
puts t.details[:username]
puts t.details[:password]

I think the problem with your code is a missing colon before
username. Should be p t.h[:username]

Cheers,
Dave