Как установить добавленные данные в качестве ключа в хэше - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь получить дату, чтобы быть ключом моего ха sh, а затем получить итоговое значение остатка в моем массиве ха sh, чтобы использовать га sh позже при возврате выписка по счету, в которой будут напечатаны дата, сумма и остаток.

Вот код:

class Bank
  attr_accessor :total, :time

  def initialize
    @total = 0
    @time = [:date => @total]
  end

  def deposit(sum)
     @total += sum
  end

  def withdrawl(sum)
    @total -= sum
  end

  def input_time
    @time << Time.now.strftime('%d/%-m/%Y')
  end

  def yesterday
    @time << Time.at(Time.now.to_i - 86400).strftime('%d/%-m/%Y')
   end
end

Как бы я мог получить дату, чтобы получить ключ ha sh? В настоящее время я пытаюсь добавить его, но это просто добавление в массив.

1 Ответ

0 голосов
/ 24 февраля 2020

Насколько я понимаю, вы хотите добавить что-то в качестве ключа к га sh.

Вы можете сделать это с помощью merge!, что-то вроде этого:

require "time"
time = DateTime.now.to_s
hash = {}
value = "value123"
hash.merge!("#{time}": "#{value123}")
p hash

#=> {:"2020-02-24T18:36:40+04:00"=>"value123"}
#merge!("KEY": "VALUE")

Вот документация merge! из раздела Ruby APIdock:

Добавляет содержимое other_ha sh до ч sh. Если блок не указан, записи с дублирующимися ключами перезаписываются значениями из other_ha sh, в противном случае значение каждого дублирующего ключа определяется путем вызова блока с ключом, его значение в h sh и его значение в other_ha sh.

...