2017-04-06 1 views
-1

레일 앱에서 통화 변환에 money gem을 사용하고 있으며 양식 선택 태그에 대한 통화 목록을 생성해야합니다.Ruby 화폐 목록을 활성 화일 목록으로 필터링 할 수 있습니까?

제안 된 문서는 Money::Currency.table에 전화하여 모든 통화의 목록을 가져 오는 데 의존하지만 여기에는 비 아이소 화폐 (예 : Bitcoin)와 예전 통화 (예 : 잘못된 Zimbabwean 달러 항목 3 개)가 포함됩니다.

고유 한 목록을 유지 관리하지 않고 유효한 ISO 통화 코드 목록 만 가져 오는 방법이 있습니까?

+0

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

+0

"방법이 있습니까"를 묻는 경우, 시도한 것을 보여주고 범위를 좁히지 않으면 질문이 즉시 광범위하게됩니다. 쿼리의 "방법이 있니?" "예"는 누구에게 도움이되지 않습니다. "나는 이것을 시도하고 이것과 그들이 효과가 없다"는 질문을 좁히고 우리가 당신이 정말로 묻고있는 것을 짐작할 수 없게한다. "[ask]"와 연결된 페이지, "[mcve]"와 그 링크 된 페이지, "[Stack Overflow 사용자에게 얼마나 많은 연구 노력이 필요합니까?] (http://meta.stackoverflow.com/questions/)를 읽으십시오. 261592). "왜 우리는 더 자세한 내용과 질문이 필요한지 설명하는 데 도움이 될 것입니다. –

답변

0

돈의 보석 separate lists을 포함 않지만, 불행하게도, 그들은 merged together 있습니다 : 그러나이 것을

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}} 
# } 

참고 : 그냥 currency_iso.json 목록을 얻으려면 수동으로 코드를 호출 할 수

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 

개인용 메소드이므로 향후 버전에서 변경 될 수 있습니다.

관련 문제