от
Я строю кассовый аппарат в Ruby, который имеет следующие хэш:


    @change = [
                  { :denomination => 0.01, :amount => 5 },
                  { :denomination => 0.02, :amount => 5 },
                  { :denomination => 0.05, :amount => 5 },
                  { :denomination => 0.10, :amount => 5 },
                  { :denomination => 0.20, :amount => 5 },
                  { :denomination => 0.50, :amount => 5 },
                  { :denomination => 1.00, :amount => 5 },
                  { :denomination => 2.00, :amount => 5 }
        ]

Когда пользователь делает покупку, они используют монеты передаются в качестве аргумента в виде массива.

    def pay(coins = [])
        coins.each do |coin|
          coin = @change.find { |x| x[:denomination] == coin }
          coin[:amount]  = 1
        end
     end

Это прекрасно работает, когда я проверить вручную в Сиб из моего терминала. Однако, когда я пытаюсь запустить
rspec
, он не с NoMethodError:
 Failure/Error: coin[:amount]  = 1

     NoMethodError:
       undefined method `[]' for nil:NilClass
Я действительно не могу понять, почему это не с NoMethodError, тем более что он нормально работает в терминале. Может кто-нибудь помочь? Спасибо :)

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...