首页 > 解决方案 > 如何从 ruby​​ 中的 ruby​​ Money::Currency.all 获取 iso 代码和名称

问题描述

如何在 Ruby 中从 Money::Currency.all 获取 iso 代码和名称

如何从 Ruby 中的 Money::Currency.table 获取 iso 代码和名称

Money::Currency.all 是 Array ,我使用了 map ,但不起作用

Money::Currency.table 是 Hash ,我还没有找到一种方法来处理这个问题

这是Money::Currency.all

{
            "id": "usd",
            "alternate_symbols": [
                "US$"
            ],
            "decimal_mark": ".",
            "disambiguate_symbol": "US$",
            "html_entity": "$",
            "iso_code": "USD",
            "iso_numeric": "840",
            "name": "United States Dollar",
            "priority": 1,
            "smallest_denomination": 1,
            "subunit": "Cent",
            "subunit_to_unit": 100,
            "symbol": "$",
            "symbol_first": true,
            "thousands_separator": ","
        },
        {
            "id": "eur",
            "alternate_symbols": [],
            "decimal_mark": ",",
            "disambiguate_symbol": null,
            "html_entity": "€",
            "iso_code": "EUR",
            "iso_numeric": "978",
            "name": "Euro",
            "priority": 2,
            "smallest_denomination": 1,
            "subunit": "Cent",
            "subunit_to_unit": 100,
            "symbol": "€",
            "symbol_first": true,
            "thousands_separator": "."
        },
        

这是Money::Currency.table

"aed": {
            "priority": 100,
            "iso_code": "AED",
            "name": "United Arab Emirates Dirham",
            "symbol": "د.إ",
            "alternate_symbols": [
                "DH",
                "Dhs"
            ],
            "subunit": "Fils",
            "subunit_to_unit": 100,
            "symbol_first": false,
            "html_entity": "",
            "decimal_mark": ".",
            "thousands_separator": ",",
            "iso_numeric": "784",
            "smallest_denomination": 25
        },

标签: ruby

解决方案


这适用于money-6.6.1(我目前使用的那个)。可能也适用于较新的版本。

Money::Currency.all.map { |m| [m.iso_code, m.name] } # => [["USD", "United States Dollar"], ...]

Money::Currency.table.values.map { |m| [m[:iso_code], m[:name]] }
# or
Money::Currency.table.values.map { |m| [m["iso_code"], m["name"]] }

推荐阅读