Вы сделали опечатку: destination_curreny
- это не то же самое, что destination_currency
. Поэтому, когда валюта множественного числа, ваш @@currencies.has_key?
тест не пройден, потому что это взгляд на оригинальный символ (destination_currency
), а не на сингулярный символ (destination_curreny
). Это вызовет вызов method_missing
с двумя аргументами (method_id
и destination_currency
) через вызов super
, но вы объявили, что method_missing
принимает один аргумент. Вот почему сообщение об ошибке, которое вы пренебрегли, чтобы полностью процитировать, жалуется на method_missing
, а не in
.
Исправьте опечатку:
def in(destination_currency)
destination_currency = destination_currency.to_s.gsub(/s$/, '').to_sym
#...