Простейшее место для размещения вашего 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) %>
Вам нужны 'select_tag' и' options_for_select'. Это методы рельсов. Прочтите их документы. –
см. Этот вопрос для справки: http://stackoverflow.com/questions/12595327/rails-select-from-json-array – axlj
Спасибо, Серджио, но я просто хочу знать, где я должен поместить свой json-файл в свое приложение ? (в какой папке) и как я должен его просить? –