私はしばらく 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
=> [ {}, {}, {} ] のような空のオブジェクトを返します。どうすればそれを達成できますか?