2017-04-06 92 views
-1

我在Rails應用中使用money gem進行貨幣換算,並需要爲表單選擇標記生成貨幣列表。是否可以將Ruby貨幣列表過濾爲只有活動的貨幣?

建議的文件依賴撥打Money::Currency.table獲取所有貨幣的列表,但這包括非iso貨幣(例如比特幣)和舊貨幣(例如三個無效的津巴布韋美元條目)。

有沒有辦法只獲取一個有效的ISO貨幣代碼列表,而無需維護我自己的列表?

+0

https://www.currency-iso.org/dam/downloads/lists/list_one.xml – JLB

+0

當問到「是否有辦法」時,您的問題立即變得非常寬泛,除非您顯示您嘗試的內容並縮小範圍的查詢。 「有沒有辦法...?」 「是」不會幫助任何人。 「我嘗試了這一點,但他們沒有工作」縮小了問題範圍,使我們無法猜測你真正想問什麼。請閱讀「[問]」和鏈接頁面,「[mcve]」及其鏈接頁面,以及「[Stack Overflow用戶需要多少研究工作?](http://meta.stackoverflow.com/questions/ 261592)「這將有助於解釋爲什麼我們需要更多的細節和更具體的問題。 –

回答

0

錢寶石不包括separate lists,但不幸的是,他們是merged together

def load_currencies 
    currencies = parse_currency_file("currency_iso.json") 
    currencies.merge! parse_currency_file("currency_non_iso.json") 
    currencies.merge! parse_currency_file("currency_backwards_compatible.json") 
end 

您可以手動調用代碼獲得剛currency_iso.json列表:但是這是

Money::Currency.send(:parse_currency_file, 'currency_iso.json') 
#=> { 
# :aed=>{:priority=>100, :iso_code=>"AED", :name=>"United Arab Emirates Dirham", :symbol=>"د.إ", :alternate_symbols=>["DH", "Dhs"], :subunit=>"Fils", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"784", :smallest_denomination=>25}, 
# :afn=>{:priority=>100, :iso_code=>"AFN", :name=>"Afghan Afghani", :symbol=>"؋", :alternate_symbols=>["Af", "Afs"], :subunit=>"Pul", :subunit_to_unit=>100, :symbol_first=>false, :html_entity=>"", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"971", :smallest_denomination=>100}, 
# :all=>{:priority=>100, :iso_code=>"ALL", :name=>"Albanian Lek", :symbol=>"L", :disambiguate_symbol=>"Lek", :alternate_symbols=>["Lek"], :subunit=>"Qintar", :subunit_to_unit=>100, :symbol_first=>false, :html_entity=>"", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"008", :smallest_denomination=>100}, 
# ... 
# :zar=>{:priority=>100, :iso_code=>"ZAR", :name=>"South African Rand", :symbol=>"R", :alternate_symbols=>[], :subunit=>"Cent", :subunit_to_unit=>100, :symbol_first=>true, :html_entity=>"R", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"710", :smallest_denomination=>10}, 
# :zmk=>{:priority=>100, :iso_code=>"ZMK", :name=>"Zambian Kwacha", :symbol=>"ZK", :disambiguate_symbol=>"ZMK", :alternate_symbols=>[], :subunit=>"Ngwee", :subunit_to_unit=>100, :symbol_first=>false, :html_entity=>"", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"894", :smallest_denomination=>5}, 
# :zmw=>{:priority=>100, :iso_code=>"ZMW", :name=>"Zambian Kwacha", :symbol=>"ZK", :disambiguate_symbol=>"ZMW", :alternate_symbols=>[], :subunit=>"Ngwee", :subunit_to_unit=>100, :symbol_first=>false, :html_entity=>"", :decimal_mark=>".", :thousands_separator=>",", :iso_numeric=>"967", :smallest_denomination=>5}} 
# } 

注一個私人的方法,所以它可能在未來的版本中改變