Форма JSON в HTML. Рубин на рельсах - PullRequest
0 голосов
/ 15 октября 2019

Проблема:
Я пытаюсь преобразовать объект JSON в HTML-форму или сгенерировать форму из объекта JSON. Я использую Ruby On Rails. *** Я не хочу использовать библиотеку для этого. Мне нужно специальное решение
Справочная информация:
У нас есть внешнее приложение, которое преобразует HTML-форму в JSON для сохранения в базе данных NOSQL, чтобы она сохраняла свою структуру. Теперь наш пользователь хотел бы иметь возможность редактировать эти данные как из внешнего приложения, так и из нашего проекта RoR.

Некоторый код:
У меня есть только c & p хэш в виде строкив мой контроллер. Я удалил некоторые значения, так что это часть структуры JSON

    @result = {
      "geoScope": {
      "GeoScope": "Virtual",
      "Neighborhoods": "Geo Neig",
      "ServiceAreaName": "Geo Location",
      "State": "Geo STate",
      "Country": "Geo Country",
      "Region": "Geo Region",
      "City": "Geo City",
      "County": "Geo County"
     },
     "programs": [
                 {
                 "S_Addiction": false,
                 "S_Identification": true,
                 "PopulationDescription": [
                                          {
                                          "xpath": "n/a",
                                          "text": "Program One",
                                          "domain": "n/a"
                                          }
       ], ... and it continues with more arrays of hashes...

Моя попытка:
У меня нет проблем с простым отображением этих данных, но созданиеформы это боль. То, что я делаю, разбивает хеш на его части (он состоит из 4 форм) и пытается создать ввод из ключа / значения, и в зависимости от типа значения (строка, массив или объект) заполняет вводстоимость. (label = Key, Input.value = Value)

   #controller
   @result.each do |k,v|
    case k.to_s
         when 'geoScope'
               @geoValue = v
               # => { "GeoScope": "Virtual", "Neighborhoods": "Geo Neig" ...}
    end
   end 

  #view
     <%= @geoValue.each do |k,v| %>

         <script type="text/javascript">
           newInput = document.createElement("input");
           newInput.value = <% k %> #=> undefined.value = [object HTMLInputElement]
           document.body.appendChild(newInput) 
         </script>
      <% end %>


"<% = / <% k%>" не будет работать внутри скрипта. Если я смогу это сделать, я смогу решить это. Я бы предпочел разработать решение самостоятельно, потому что некоторые значения представляют собой хэш, который содержит 3 значения, а иногда это значение является просто строкой.

Как всегда, спасибо сообществу StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...