【发布时间】:2019-07-21 13:19:53
【问题描述】:
require 'json'
require 'date'
module Exchange
file = File.read('./data/data.json')
data_hash = JSON.parse(file)
def self.rate(date, from_currency, to_currency)
date = date.strftime('%Y-%m-%d')
raise 'That date does not exist' unless data_hash[date]
data_hash[date][to_currency] / data_hash[date][from_currency]
end
end
此方法必须将date 上的from_currency 和to_currency 之间的汇率作为浮点数返回。
我已经包含了一个基于欧元的货币汇率 JSON 文件。我需要将此作为您的货币汇率来源
另外,未来文件的格式可以是json以外的任何格式。它还应该支持欧元以外的其他货币。 (我不知道我该怎么做)
json 文件如下所示:
{
"2018-12-11": {
"USD": 1.1379,
"JPY": 128.75,
"BGN": 1.9558,
"CZK": 25.845,
"DKK": 7.4641,
"GBP": 0.90228,
"HUF": 323.4,
"PLN": 4.2983,
"RON": 4.6557,
"SEK": 10.297,
"CHF": 1.1248,
"ISK": 140.2,
"NOK": 9.7038,
"HRK": 7.3943,
"RUB": 75.5225,
"TRY": 6.1295,
"AUD": 1.5778,
"BRL": 4.4417,
"CAD": 1.5239,
"CNY": 7.8498,
"HKD": 8.8934,
"IDR": 16625.0,
"ILS": 4.2691,
"INR": 81.8215,
"KRW": 1284.17,
"MXN": 23.0209,
"MYR": 4.7615,
"NZD": 1.6526,
"PHP": 60.009,
"SGD": 1.5617,
"THB": 37.317,
"ZAR": 16.2903
},
"2018-12-10": {
"USD": 1.1425,
"JPY": 128.79,
"BGN": 1.9558,
"CZK": 25.866,
"DKK": 7.4639,
"GBP": 0.90245,
"HUF": 323.15,
"PLN": 4.2921,
"RON": 4.6502,
"SEK": 10.333,
"CHF": 1.1295,
"ISK": 140.0,
"NOK": 9.6885,
"HRK": 7.387,
"RUB": 75.8985,
"TRY": 6.0499,
"AUD": 1.5842,
"BRL": 4.4524,
"CAD": 1.5218,
"CNY": 7.8967,
"HKD": 8.9283,
"IDR": 16671.36,
"ILS": 4.2642,
"INR": 82.7284,
"KRW": 1287.42,
"MXN": 23.132,
"MYR": 4.7671,
"NZD": 1.6581,
"PHP": 60.367,
"SGD": 1.5667,
"THB": 37.525,
"ZAR": 16.3463
},
"2018-12-07": {
"USD": 1.1371,
"JPY": 128.36,
"BGN": 1.9558,
"CZK": 25.851,
"DKK": 7.4641,
"GBP": 0.89085,
"HUF": 323.5,
"PLN": 4.2895,
"RON": 4.6485,
"SEK": 10.2665,
"CHF": 1.1299,
"ISK": 139.5,
"NOK": 9.697,
"HRK": 7.3913,
"RUB": 75.885,
"TRY": 6.0619,
"AUD": 1.5766,
"BRL": 4.4358,
"CAD": 1.523,
"CNY": 7.8244,
"HKD": 8.8866,
"IDR": 16454.01,
"ILS": 4.2545,
"INR": 80.509,
"KRW": 1278.67,
"MXN": 23.1435,
"MYR": 4.7372,
"NZD": 1.6558,
"PHP": 60.059,
"SGD": 1.5583,
"THB": 37.359,
"ZAR": 16.0673
}
【问题讨论】:
-
你试过什么?
-
我不了解使用一些红宝石或如何计算汇率。
-
1) 解析 JSON 文件 2) 将日期参数转换为您在 JSON 中看到的相同字符串格式 3) 查找 from_currency 到 EUR 汇率 4) 查找 EUR 到 to_currency 汇率 5) 计算尝试解决问题并在您有更多问题时回来,并向我们展示您尝试过的内容和无效的内容。我们不在这里解决家庭作业:-)
-
一些建议: 1)删除“但其他来源可能不是JSON,可能不是基于欧元。”,因为没有办法处理这种开放式声明; 2) 写,“以下是从 JSON 文件读取的哈希示例。”; 3) 通过将
} ....更改为}}并为哈希分配一个变量(例如,ex_rates = {"2018-12-11": {...}})使哈希成为有效的 Ruby 对象,以便读者可以在答案和 cmets 中引用该变量而无需定义它; 4) 说明这是否是家庭作业问题。如果是这样,则规则要求您描述为解决该问题所做的努力。 -
谢谢,我试过这个
标签: ruby rubygems ruby-on-rails-5