Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails中按国家代码获取ISO货币代码?_Ruby On Rails_Ruby_Locale_Currency_Country Codes - Fatal编程技术网

Ruby on rails 如何在rails中按国家代码获取ISO货币代码?

Ruby on rails 如何在rails中按国家代码获取ISO货币代码?,ruby-on-rails,ruby,locale,currency,country-codes,Ruby On Rails,Ruby,Locale,Currency,Country Codes,在我的rails应用程序中,我想使用国家代码,货币代码,ISO地区代码从API获取一些数据。当用户从任何地方访问我的站点时,我如何动态获取此信息 我已经通过请求使用了。location我将获得location的信息,使用此gem我可以获得国家代码。现在我不知道如何获取剩余信息,如货币代码&ISO地区代码??谁能帮助我或指引我 我看过这个,但不确定它是否能提供所有这些信息 提前感谢:)货币代码&ISO地区代码是静态数据,很少更改(如果有更改的话),最好将其存储在数据库表中,作为系统内的静态信息处理

在我的rails应用程序中,我想使用
国家代码
货币代码
ISO地区代码
从API获取一些数据。当用户从任何地方访问我的站点时,我如何动态获取此信息

我已经通过
请求使用了。location
我将获得location的信息,使用此gem我可以获得
国家代码
。现在我不知道如何获取剩余信息,如
货币代码
&
ISO地区代码
??谁能帮助我或指引我

我看过这个,但不确定它是否能提供所有这些信息


提前感谢:)

货币代码
&
ISO地区代码
是静态数据,很少更改(如果有更改的话),最好将其存储在数据库表中,作为系统内的静态信息处理。提供一个CRUD接口来管理这些数据可能是个好主意

货币代码的一个可能来源:

包含有关获取所有区域设置代码列表的详细信息。

我已尝试回答。但是这里面有很多问题,我发现不是所有国家都有正确的名称,有些国家有多个
货币\u code
,这让我很困惑。但最终我找到了这个解决方案,没有创建任何数据库

以下是我如何实现解决方案的:

country_name = request.location.data['country_name'] # got country name
c = Country.find_country_by_name(country_name) # got currency details
currency_code = c.currency['code'] # got currency code

很抱歉回答我自己的问题,但是我已经在这里发布了帖子,所以将来如果有人因为同样的问题像我一样坚持,那么他/她的时间就不会浪费了

我找到了一种让它变得非常简单的方法:

currency
gem添加到Gemfile,然后
bundle安装

def currency_for_country(货币iso_代码)
ISO3166::Country.new(货币代码)。货币代码
结束
然后:


此信息基于自述文件

当您有答案但尚未发布时,回答您自己的问题是正确的做法。谢谢。我不建议使用国家创业板,因为它使用的货币创业板有很多遗漏的货币信息。虽然我同意它很少改变,但我认为把它看作是“静态数据”不是一个好主意。如果你的项目将持续5年以上,那么你会遇到很多不一致的情况。您需要定期更新列表。谢谢。这确实是一个正确的观点;我没有考虑过。
currency_for_country('US')
=> "USD"

currency_for_country('AU')
=> "AUD"