如何创建自定义和共享rabl

时间:2015-09-12 03:35:23

标签: ruby-on-rails rabl

我有v1/queues/index.rabl喜欢:

collection @queues
extends "v1/queues/show"

但是我希望有一个成功响应的模板,可以嵌入队列信息,比如

{
  "ok":true,
  "data":[@queues' info] (it can be other info too, like @stack info)
}

我正在考虑:

def index
  @queues = Queue.all
  render 'shared/success',locals: { url: 'v1/queues/index', data: @queues }
end

然后创建一个share/success.rabl,如:

node(:ok) { true }
child(:data) do
  extend("v1/queues/index",:object =>data)
end

因此,在每个操作中,我只需要将rabl文件v1/queues/index和实例变量的路径传递给共享模板shared/success。这可能吗?

1 个答案:

答案 0 :(得分:1)

要创建共享rabl,您可以使用inheritenceextends),如下所示:

extends 'path/to/shared/rabl'

您可以使用上述语法extend来自任何其他rabl内部的兔子。

有关详细信息,请参阅this