IT序号网

ruby-on-rails之使用变量名构建 rails jbuilder json 参数

third_qq_23965379c3878727 2024年11月24日 编程语言 21 0

我正在尝试使用 jbuilder 从 Rails 构建一些 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' 
      } 
    ] 
  } 

有什么想法吗?

请您参考如下方法:

您可以使用:

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 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!