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 Ruby Objects and Classes Build a Bank Account Class Printing The BankAccount

No exact error just try again

What I'm I misunderstanding here?

bank_account.rb
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:#{sprintf("%0.2",balance)}"
  end

end

1 Answer

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi there! I'll be honest, I had to try this challenge a few times before I could work out what they wanted. I feel like this could be worded better. They say to display the string, but the bummer message says the correctly formatted string wasn't returned. This was my first clue. It wants the string returned.

Secondly, the challenge says the sprintf is not needed. To be clear, this will not pass if you use the sprintf method. So I took that out as well. But I still wasn't getting the right result. So I looked back up at the format they gave and noticed something: after each colon there is a space. But there was no space in yours. Yours would have printed out something like "Name:Jennifer" instead of "Name: Jennifer". Note the extra space in the second version.

Here was my result that passed:

  def to_s
    return "Name: #{name}, Balance: #{balance}"
  end

Hope this helps! :sparkles:

:bulb: Hint going forward: the challenges don't always include a hint but pay special attention if it says something wasn't returned. It's probably looking for a return statement somewhere.

Also note that this wording choice given in the challenge has been reported to support as I feel it is rather misleading.