Я использую jBuilder и jsTree (https://www.jstree.com/docs/json/) в своем приложении Rails и пытаюсь построить массив следующим образом:
[
{
id : "string" // required
parent : "string" // required
text : "string" // node text
icon : "string" // string for custom
state : {
opened : boolean // is the node open
disabled : boolean // is the node disabled
selected : boolean // is the node selected
},
li_attr : {} // attributes for the generated LI node
a_attr : {} // attributes for the generated A node
},
{...},
{...}
]
Я делал это раньше с помощью простого json.array!
и do l oop с набором результатов из моей базы данных. Там нет проблем. Проблема в том, что у меня полиморф c родителей, т.е. есть разные модели. Я приравняю это к примеру, где у меня есть «Продукты» и «Оборудование», и все они имеют комментарии, вложенные ниже. Я хочу перечислить все проекты (с дочерними комментариями), затем перечислить все оборудование и затем дочерние комментарии для них. По сути, мне нужен al oop, например:
[
projects do |p|
json.id id
json.parent "#"
...
end
equipment do |e|
json.id id
json.parent "#"
...
end
comments do |c|
json.id id
json.parent c.parent_id
...
end
]
Таким образом, я могу построить ха sh данных для анализа jsTree. Документы для jBuilder не очень хороши, и я не уверен, как или как я могу это сделать.