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