Как проверять и повторять циклы внутри хеша для создания / заполнения пар ключ-значение? - PullRequest
0 голосов
/ 24 мая 2018

У меня есть что-то вроде

strands = Strand.all


data = {}
data["data"] = {
              strands.each do |strand|
                "#{strand.name}" = {"description" => "#{strand.description}",
                                     if strand.standards.present?
                                        "children" => 
                                        strand.standards.each do |standard|
                                            {"#{standard.name}" => {"description" => "#{standard.description}"}
                                          }
                                        end
                                      end
                                    } 
              end
}

Так что мне нужно сгенерировать структуру json, подобную приведенной ниже

"data": {
     "testStrand3Code": {
            "description" : " some descr.. .",
            "children" : {"standard3Code" : {
                "description" : " some descr.. ."
            }}
      }
}

Я не могу повторить strands.each do |strand|, и это дает мнеошибка.Я думаю, что не могу запустить логический код внутри хеша {}?Как мне это сделать?Спасибо.

1 Ответ

0 голосов
/ 24 мая 2018
(data = {})["data"] =
  strands.map do |strand|
    [strand.name, 
      {
        "description" => strand.description,
        "children" => strand.standards.map do |standard|
          [standard.name, {"description" => standard.description}]
        end.to_h
      }
    ]
  end.to_h
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...