2017-09-05 57 views
1

我有一個activeadmin形式,其中的輸入字段中的一個是由一些方法返回的JSON數據填充作爲隱藏輸入參數部分上activeadmin

f.input :tag, :label => 'Tags', :as => :select, :collection => HelperClass.get_json() 

JSON的看起來像這樣:

  { 
       "group_name": "Group1", 
       "categories": [ 
        { 
        "category_name": "cat_1", 
        "score": "120" 
        }, 
        { 
        "category_name": "cat_2", 
        "score": "120" 
        } 
       ] 
       } 

雖然這顯示在UI中的窗體上,但我只想顯示「group_name」。但是,我希望稍後使用「類別」中的數據。

無論如何我可以做到這一點嗎?例如,從表單中隱藏剩餘的json,或者使用'group_name'解析其他某個地方的json,或者使用其他任何我無法想到的方式解析json。

PS:你能不能詳細闡述一下回答這個。我不是ROR開發者,但必須修改其他人編寫的代碼。

+0

嘗試'HelperClass.get_json()。slice(:group_name)'。這隻會顯示組名 – Abhi

回答

0

首先轉換爲數組/散列,然後使用Ruby Array/Hash方法。假設你的意思是JSON是組陣列:

data = JSON.parse HelperClass.get_json() 
f.input :tag, :label => 'Tags', :as => :select, 
     :collection => data.map {|grp| grp['group_name']} 

我懷疑你想有一個多層次的選擇,這將需要你寫自己的JavaScript來填充第二選擇。也許https://github.com/blocknotes/activeadmin_selectize將對此有所幫助。

+0

是的。該地圖似乎只能幫助顯示group_name。這是我想訪問的剩餘數據。我現在要查看JS部分。不管怎麼說,還是要謝謝你! –