2016-06-15 44 views
0

我有我呼籲在國家列表 - 並解析爲以下格式:填入從陣列下拉列表中的紅寶石

{"Countries"=>[{"Name"=>"ABKHAZIA", "IsoCode"=>"AB", "HasTown"=>"I"}, {"Name"=>"ANGUILLA", "IsoCode"=>"AI", "HasTown"=>"I"}, {"Name"=>"ANTIGUA", "IsoCode"=>"AG", "HasTown"=>"I"}, .... {"Name"=>"ZIMBABWE", "IsoCode"=>"ZW", "HasTown"=>"I"}]} 

我想填充一個下拉列表與此數據。代碼我使用創建下拉框:

def country_selection_input options = {} 
options.reverse_merge!(
    :attribute => :country_iso, 
    :collection => transaction_form.get_countries, 
    :input_html => {}, 
    :prompt => 'please select', 
    :label => 'To Where' 
) 

這給了我一個下拉框與請及時和只包含了一個單詞的列表:國家。

數據在那裏 - 但我不知道如何將它放到下拉列表中 - 並且確定我缺少一些簡單的東西。 我試圖

:label_method => :Name, 

,但得到的

undefined method `Name' for #<Array:0x007fc385cecbb0> 

的錯誤消息,因爲我要根據所選擇的國家採取行動,這可能會變成一個菜單 - 但是 - 這是第一步 - 讓列表工作。

+0

能否請您提供所需的下拉框的例子嗎?你期望在那裏有哪些價值?謝謝。 – retgoat

回答

1

答案最終被

def country_selection_input options = {} 
countries = transaction_form.get_countries()[:Countries] 
options.reverse_merge!(
    :attribute => :country_iso, 
    :collection => countries, 
    :label_method => :Name, 
    :value_method => :IsoCode, 
    :input_html => {}, 
    :prompt => 'please select', 
    :label => 'To Where' 
) 

call_input_from_args_hash options