我想創建這樣一種形式:Ruby on Rails和JSON創建選擇形式
<select>
<option>
</select>
與Ruby on Rails的,但它是個國家(還有很多世界各國的哈哈),所以我不想在我的觀點上寫每個人,所以我想把一個JSON文件與所有國家,並在我的選項(每種方法可能)獲取主題
我不知道在哪裏我必須把我的json文件放在我的rails應用程序中,以及如何在我的視圖中調用它,
有人可以幫助 我 ?
我想創建這樣一種形式:Ruby on Rails和JSON創建選擇形式
<select>
<option>
</select>
與Ruby on Rails的,但它是個國家(還有很多世界各國的哈哈),所以我不想在我的觀點上寫每個人,所以我想把一個JSON文件與所有國家,並在我的選項(每種方法可能)獲取主題
我不知道在哪裏我必須把我的json文件放在我的rails應用程序中,以及如何在我的視圖中調用它,
有人可以幫助 我 ?
將您的JSON文件放在最簡單的位置與您的控制器位於同一目錄中 - 儘管重複執行此類操作會很快使您的控制器文件夾變得混亂。
一旦你這樣做,你可以從你的控制器這樣的閱讀:
file = File.read('./countries.json')
countries = JSON.parse(file)
,然後國家映射到的數據類型options_for_select
預期。
一旦你有這個工作,我會建議做一個助手,知道如何讀取json文件,緩存它的數據並返回它。將json文件存儲在與助手相同的目錄中。在控制器中引用助手。
另請注意:JSON寶石是必需的。
在你的助手,你要創建這個方法:
def countries_for_select
file = File.read('./countries.json')
countries = JSON.parse(file)
countries.map {|c| [ c['country']['label'], v['country']['country_code'] ] })
end
.map
從國家JSON對象轉換田間地頭到[[name,key], ...]
陣列options_for_select
預期。
每表單助手的Rails Documentation,爲select_tag
語法看起來像這樣
<%= select_tag(:country, options_for_select(...)) %>
但我們已經創建了助手countries_for_select
以匹配select_tag
期待的格式。所以你需要做的就是:
<%= select_tag(:country, countries_for_select) %>
謝謝你的回答!這是有義務把這個在控制器?我不能把它放在視圖中? –
你絕對需要這個(至少)在你的控制器。但我建議將邏輯的肉類轉化爲助手類。 – axlj
@AntoninMrchd:__definitely__不能查看。 –
你需要'select_tag'和'options_for_select'。這些是rails方法。閱讀他們的文檔。 –
看到這個問題的幫助:http://stackoverflow.com/questions/12595327/rails-select-from-json-array – axlj
謝謝塞爾吉奧,但我只是想知道我必須把我的json文件放在我的應用程序? (哪個文件夾)以及我如何請求它? –