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

Why do I need [:amount] on this code?

I get the answer for the problem, I just don't get why you need to use [:amount] here. Could someone explain?

In the BankAccount class, implement a method called balance. The balance method should loop through transactions and calculate the current account balance.

class BankAccount attr_reader :name

def initialize(name) @name = name @transactions = [] add_transaction("Beginning Balance", 0) 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 balance balance = 0.0 @transactions.each do |transaction| balance += transaction[:amount] end return balance end

end

1 Answer

Sage Elliott
Sage Elliott
30,003 Points

Hello, jordanresendiz! That's a good question.

In this method you're creating a hash to be able to push it to the array. "amount:" is the key for "amount" here.

 def add_transaction(description, amount)
    @transactions.push(description: description, amount: amount)
  end
end

Here it's calling the key(:amount) to access the data stored in the array.

 def balance
    balance = 0.0
    @transactions.each do |transaction|
      balance += transaction[:amount]
    end
    return balance
  end

I hope that helps! Further reading about hashes can be found here

Thank you!