Ответ 1
В последних версиях Rabl вы должны установить эту конфигурацию, если хотите, чтобы include_root_json
был false
на всех уровнях.
Rabl.configure do |config|
config.include_json_root = false
config.include_child_root = false
end
Я пытаюсь сделать довольно простую структуру данных с помощью RABL, но я не могу понять, как правильно удалить дочерние корневые узлы. Вот мои два шаблона.
Сначала шаблон шаблона коллекции.
collection @groups, :object_root => false
attributes :id, :name
child :files do
extends 'groups/_file'
end
И далее, частичный шаблон файла.
object @file
attributes :id
Эти два шаблона приводят к созданию следующего JSON:
[
{
"id":"4f57bf67f85544e620000001",
"name":"Some Group",
"files":[
{
"file":{
"id":"4f5aa3fef855441009000007"
}
}
]
}
]
Я хочу найти способ удалить корневой файл "файл" внутри коллекции файлов. Что-то вроде:
[
{
"id":"4f57bf67f85544e620000001",
"name":"Some Group",
"files":[
{
"id":"4f5aa3fef855441009000007"
}
]
}
]
В последних версиях Rabl вы должны установить эту конфигурацию, если хотите, чтобы include_root_json
был false
на всех уровнях.
Rabl.configure do |config|
config.include_json_root = false
config.include_child_root = false
end
Попробуйте заменить:
child :files do
extends 'groups/_file'
end
с:
node :files do |group|
group.files.map do |file|
partial 'groups/_file', object: file, root: false
end
end
Это обычный способ удаления корневого json (вместо указания object_root: false)
config/initializers/rabl_config.rb
Rabl.configure do |config|
config.include_json_root = false
end
Перемещает ли это туда (и перезапускает рельсы), исправить?
просто поместив его там, если вы хотите применить его для определенного дочернего элемента:
child :files, :object_root => false do
extends 'groups/_file'
end