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 trialMason Goetz
5,048 Points"NameError: undefined local variable or method 'first_name' for..."
When I try to run bank_account = BankAccount.find_for("Justin", "Smith")
I keep getting NameError: undefined local variable or method 'first_name' for
...
I have been back over my bank_account.rb file to see if I can spot the error there, but it seems to me that I have correctly defined 'first_name'.
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
What am I missing?
1 Answer
Maciej Czuchnowski
36,441 PointsThis method:
def full_name
"#{first_name} #{last_name}"
end
uses local variables; they should be instance variables.
Mason Goetz
5,048 PointsMason Goetz
5,048 PointsThanks