Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Ruby

Class Methods find_for

I am having a problem with my find_for method in my BankAccount class. IRB is giving me this error:

2.0.0-p247 :006 > bank_account = BankAccount.find_for("Melissa", "McGinnis")

NameError: undefined local variable or method last_name' for #<BankAccount:0x007fe02c2ee028> from /Users/brittmcginnis/[projects]/deepdive/bank_account.rb:19:infull_name' from /Users/brittmcginnis/[projects]/deepdive/bank_account.rb:9:in block in find_for' from /Users/brittmcginnis/[projects]/deepdive/bank_account.rb:9:ineach' from /Users/brittmcginnis/[projects]/deepdive/bank_account.rb:9:in find' from /Users/brittmcginnis/[projects]/deepdive/bank_account.rb:9:infind_for' from (irb):6 from /Users/brittmcginnis/.rvm/rubies/ruby-2.0.0-p247/bin/irb:13:in `<main>'

Here is my program: class BankAccount

def self.create_for(first_name, last_name)
    @accounts ||= []
    @accounts << BankAccount.new(first_name, last_name)
end

def self.find_for(first_name, last_name)
    @accounts.find {|account| account.full_name == "#{first_name} #{last_name}"}
end

def initialize(first_name, last_name)
    @balance = 0
    @first_name = first_name
    @last_name = last_name
end

def full_name
    "#{@first_name} #{last_name}"
end

def deposit(amount)
    @balance += amount
end

def withdraw(amount)
    @balance -= amount
end

end

bank_account = BankAccount.new("Brittan", "McGinnis") puts bank_account.inspect

1 Answer

You actually did something almost the same as I did. You are missing an "@" symbol in the last_name instance variable for your full_name method.

It should be like this:

def full_name
    "#{@first_name} #{@last_name}"
end