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![](https://ecs-static.teamtreehouse.com/assets/views/marketing/shared/community-banner-white-47072046c51352fe6a69f5e691ff5700b28bb11d45197d7bdf066d9ea3f72d0c.webp)
![David Besserman](https://secure.gravatar.com/avatar/7b43e5c1c2b7f398644264baf8b50e1c?s=96&d=https%3A%2F%2Fecs-static.teamtreehouse.com%2Fassets%2Fcontent%2Fdefault_avatar-445fbbabfc8dc9188fb5967fe43322ee0c3e0dd1e10f378bf8343784af5a13eb.webp&r=pg)
David Besserman
3,963 PointsI can't understand why my method isn't correctly formated
Here is the to_s method I wrote
def to_s puts "Name: #{@name}, Balance: #{balance}" end
In my IDE, it returns the right result. Can you please explain me why it isn't accepted ?
David
class BankAccount
attr_reader :name
def initialize(name)
@name = name
@transactions = []
add_transaction("Beginning Balance", 0)
end
def balance
balance = 0
@transactions.each do |transaction|
balance += transaction[:amount]
end
balance
end
def debit(description, amount)
add_transaction(description, -amount)
end
def credit(description, amount)
add_transaction(description, amount)
end
def add_transaction(description, amount)
@transactions.push(description: description, amount: amount)
end
def to_s
puts "Name: #{@name}, Balance: #{balance}"
end
end
bank_account = BankAccount.new("David")
bank_account.to_s
1 Answer
![Raymond Sapida](https://secure.gravatar.com/avatar/bd3ff01169be6c6aedaf183e182eb8a2?s=96&d=https%3A%2F%2Fecs-static.teamtreehouse.com%2Fassets%2Fcontent%2Fdefault_avatar-445fbbabfc8dc9188fb5967fe43322ee0c3e0dd1e10f378bf8343784af5a13eb.webp&r=pg)
Raymond Sapida
33,049 PointsHi David,
I believe that the problem is that you have to remove the puts
method and write the to_s
method as :
def to_s
"Name: #{@name}, Balance: #{balance}"
end
This line:
puts "Name: #{@name}, Balance: #{balance}"
returns nil
from the method and writes the string to the console. That's why you would see the correct string in your IDE but the program would only see nil
.
I hope this helps and good luck!