Ruby Ruby Objects and Classes Build a Bank Account Class Printing The BankAccount

Nafeez Quraishi
Nafeez Quraishi
8,526 Points

Answer not being accepted

Not sure if i understood the expectation from the answer correctly

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(name, balance)
    puts "Name: #{name}, Balance: #{balance}"
  end
end

2 Answers

William Li
PLUS
William Li
Courses Plus Student 26,842 Points

Couple issues in your code

  • to_s method should takes NO argument. Make use of the @name instance variable & balance instance method (both have been defined) in the String interpolation.
  • don't use the puts statement, otherwise, the to_s method will has nil as return value.
  def to_s
    "Name: #{@name}, Balance: #{balance}"
  end

hope it helps.

Nafeez Quraishi
Nafeez Quraishi
8,526 Points

Thanks William for quick reply. Yes it helped!