如果value为true或false,则在多维数组中搜索

时间:2017-06-19 15:40:11

标签: ruby ruby-on-rails-4

我有一个多维数组,如下所示

{
  patient: {
    value: 66,
    entry_date: "2017-01-17",
    source: "self entered",
    risk_level: nil,
    risk_ranges: [{
      level: "low",
      is_active: false,
      range_low: 80,
      range_high: 139,
      unit: "mg/dL"
    }, {
      level: "moderate",
      is_active: false,
      range_low: 140,
      range_high: 199,
      unit: "mg/dL"
    }, {
      level: "high",
      is_active: false,
      range_low: 200,
      range_high: nil,
      unit: "mg/dL"
    }]
  }
}

我想知道is_active数组中false是否为risk_ranges

当然,我可以访问patient.risk_ranges[0].is_activepatient.risk_ranges[1].is_activepatient.risk_ranges[2].is_active,但想知道是否有更好的方式来撰写此内容。

如果数组中所有3个对象中is_activefalse,则设置patient.risk_level = high

我该怎么做?

1 个答案:

答案 0 :(得分:0)

你可以按照

的方式做点什么
if patient.risk_ranges.all?{ |range| range.is_active == false} 
   patient.risk_level = "high"
end