我有一个像这样的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。这可能吗??

最佳答案

要创建共享的Rabl,可以使用inheritence(extends),如下所示:

extends 'path/to/shared/rabl'

您可以使用上述语法从任何其他extend内部对Rabl进行rabl

有关更多信息,请参见this

09-03 17:43