我和 Rabl 一起工作了一段时间,就在今天,我遇到了一个我无法很好解决的有趣问题。
所以,我有一个从 GET ".../list/512/resources" 返回的集合,这是我用来返回的示例 rabl 模板(没有根):
collection @resources
extends "api/v1/resources/_base"
=> { [ {...}, {...}, {...} ] }
但是,现在我意识到我想根据每个资源的属性为每个资源返回不同的模板......所以这很容易对吧?
node @resources => :resources do |resource|
if resource.type == 'Document'
partial('...', :object => resource)
elsif @resource.type == 'Folder'
partial('...', :object => resource)
end
end
=> {资源:[{...},{...},{...}]}
但是哦!现在我不想要那个“资源”节点了..应该怎么做?我试过类似的东西:
array = []
@resources.each do |resource|
if resource.type == 'Document'
array << partial('...', :object => resource)
elsif @resource.type == 'Folder'
array << partial('...', :object => resource)
end
end
collection array
但没有成功,它返回空对象,例如 => [ {}, {}, {} ]。知道我该怎么做吗?