如何通过字符串

时间:2015-05-26 02:47:43

标签: ruby-on-rails json string hashmap jbuilder

我正在使用rails和jBuilder在我的应用中提供JSON。我试图迭代各种颜色,只有当它们的值不是nil时才将它们添加到生成的JSON中。这就是我正在使用的,它有效,但我想学习如何pr

  

工作代码

json.cost do
  unless card.cost_red.nil? 
    json.red card.cost_red
  end
  unless card.cost_white.nil? 
    json.white card.cost_white
  end
  unless card.cost_blue.nil? 
    json.blue card.cost_blue
  end
end
  

非工作代码

json.cost do
    ["red", "white", "blue"].each { |color| 
      unless card["cost_" + color].nil?
        json[color] card["cost_" + color]
      end
    }
end

' json [color]'部分是罪魁祸首,因为如果我只是使用json.blah它是有效的。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这可能会有所帮助。

json.cost ["red", "white", "blue"] do |color|
  unless card["cost_" + color].nil?
    json.set! color, card["cost_" + color]
  end
end