2012-04-19 4 views
0

locations라는 테이블과 items이라는 테이블에 대해 검색하고 있습니다. 둘 다 짧은 테이블 (2K 개 항목)이므로이 쿼리의 성능에 신경을 쓰지 않아도됩니다.rabl과 함께 두 가지 유형을 처리합니다.

하나를 찾고 나서 다른 하나를 검색하여 두 개의 다른 유형의 객체를 단일 배열로 반환합니다. 이러한 상황 중 하나를 처리하기 위해 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 

들으

편집 # 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

평평하게하지 않으면 노드는 실제로 두 개의 항목이있는 배열입니다. 첫 번째 항목은 위치의 배열이고 두 번째 배열은 항목의 배열입니다. 질문을 인용하여 "두 개의 다른 유형의 객체를 단일 배열로 반환합니다."이 템플릿이 수행하는 것입니다. 다른 형식을 원한다면 나를 명확히 할 수 있습니까? – niiru

관련 문제