我正在尝试实现一个 method_missing 来将 $ 转换为其他货币,例如 5.dollars 产生 5,5.yen 产生 0.065 5.euro 6.56 等等。这是我现在可以做到的。现在我需要实现它,但例如做 5.dollars.in(:yen) 。
这就是我现在所拥有的:
class Numeric
@@currencies = {'yen' => 0.013, 'euro' => 1.292, 'rupee' => 0.019}
def method_missing(method_id)
singular_currency = method_id.to_s.gsub( /s$/, '')
if @@currencies.has_key?(singular_currency)
self * @@currencies[singular_currency]
else
super
end
end
end
谁能解释我该怎么做?
PS:我宁愿你不要给我代码,而是一个解释,所以我可以自己确定它是如何完成的。