首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子类和Rabl

子类和Rabl
EN

Stack Overflow用户
提问于 2013-03-27 05:42:28
回答 1查看 102关注 0票数 2

我有一个同时包含父对象和子类对象的提要,我使用RABL将其呈现到json中。我将根对象包含在json中。

问题是这个=>取决于首先出现的是什么,json中的根节点将使用相应的类生成。

我需要它是所有的父类。

示例如下:

代码语言:javascript
复制
Class Klass
 ...

Class SubclassOfKlass < Klass
 ...

k = Klass.create
s = SubclassOfKlass.create

array1 = [k,s]
Rabl::Renderer.json(nil, 'answers/list', view_path: 'app/views', locals: {object: array1})

## results will render everything as "Klass" objects
## [{\"klass\":{\"_id\":\"1\"},{\"klass\":{\"_id\":\"2\"}]

array2 = [s,k]
Rabl::Renderer.json(nil, 'answers/list', view_path: 'app/views', locals: {object: array1})

## results will render everything as "SubclassOfKlass" objects
## [{\"subclass_of_klass\":{\"_id\":\"1\"},{\"subclass_of_klass\":{\"_id\":\"2\"}]

### But I need the root to be always "klass" and not "subclass_of_klass"

rabl如下所示(非常简单)

代码语言:javascript
复制
# list.rabl
collection @answers
extends "answers/show"

#show.rabl
if @user
  node(:context_string) { |a| a[:context_string]}
  node(:notebook) do |a|
    if a.class == SubclassOfKlass
      a.notebook
    end
  end
end

extends "klasses/cache"
EN

回答 1

Stack Overflow用户

发布于 2013-03-27 14:42:31

好的,答案很简单:

代码语言:javascript
复制
collection @answers, :object_root => "answer"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15647955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档