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
Brittan McGinnis
2,733 PointsClass 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
Chris Dziewa
17,781 PointsYou 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