2012-08-06 3 views
2

jbuilder를 사용하여 레일에서 일부 json 출력을 빌드하려고합니다. 이 같은 결과는 물론빌드 레일 jbuilder 변수 이름을 사용하여 json 매개 변수

json.links do | i | 
    i.array!(@links) do | j, link | 
     j.source link['source'] 
     j.target link['target'] 
     j.stats do | s | 
     [ 'item1', 'item2' ].each { |item| 
      s.item statistics_path(:source => link['source'], :metric => item) 
     } 
     end 
    end 
    end 

: 내가 좋아하는 뭔가를

{ 
    links: [ 
     source: "a", 
     target: "b", 
     stats: { 
     item: 'url for item2' 
     } 
    ] 
    } 

내가 실제로 원하는 같은 :

{ 
    links: [ 
     source: "a", 
     target: "b", 
     stats: { 
     item1: 'url for item1', 
     item2: 'url for item2' 
     } 
    ] 
    } 

어떤 아이디어?

답변

6

당신은 사용할 수 있습니다

json.set!(:item1, "stuff")

를 귀하의 경우 :

json.links do | i | 
    i.array!(@links) do | j, link | 
     j.source link['source'] 
     j.target link['target'] 
     j.stats do | s | 
     [ 'item1', 'item2' ].each { |item| 
      s.set!(item, statistics_path(:source => link['source'], :metric => item)) 
     } 
     end 
    end 
    end 
+0

작품 : 광고로 – yee379

관련 문제