2012-04-19 16 views
0

私は、locationsというテーブルとitemsというテーブルを検索しています。これらは両方ともショート・テーブル(2k項目)なので、このクエリのパフォーマンスについては心配はありません。rablで2つの異なるタイプを扱う

私は1つを検索して別のものを検索し、2つの異なるタイプのオブジェクトを1つの配列として返します。これらの状況のいずれかを処理するためにrablテンプレートを使用する方法はありますか?ような何か:

collection @locations 

@locations.each do |x| 
if x.class.to_s=='Location' 
    extends "api/location" 
elsif x.class.to_s=='Location' 
    extends "api/item" 
end 

THX

編集#1 はこれを試みたが、これは私を取得するかわかりません。配列は異なるオブジェクトの一覧に過ぎず、配列の平坦化の仕組みは不明です。

collection @b 

node(:data) do |m| 
    [@locations, @items].flatten 
end 

答えて

0

は、私は少し周りを演奏し、@locations@items内のオブジェクトのすべてとarray_nameをという名前のJSON配列を提示すべき、この思い付いた:

* .rabl:

node(:array_name) do |m| 
    [@locations, @items].flatten 
end 
+0

私は編集#1で上記の調整を試みましたが、配列を平坦化することで私を得ることは本当にわかりません。 – timpone

+0

これを平坦化しないと、ノードは実際には2つの項目を持つ配列です。最初の項目は位置の配列で、2番目の項目は項目の配列です。 あなたの質問を引用すると、 "... 1つの配列として2種類のオブジェクトを返す"という記述があります。これはこのテンプレートの機能です。別のフォーマットをお探しの場合は、私のために明確にすることができますか? – niiru

関連する問題