在Rails Controller中检查JSON响应中的值

时间:2019-02-13 09:27:33

标签: ruby-on-rails

我需要检查JSON响应中协议值的状态是否为true。以下是params['protocol'],它在响应下方返回。

{"device1"=>true, "device2"=>false} 

我需要检查device1是否为真,我需要执行一些操作。我正在尝试在控制器中的以下代码,但是它不起作用。如何实现呢?

if params['protocol']["device1"] == "true"

2 个答案:

答案 0 :(得分:0)

您应该尝试  if params['protocol']["device1"] == true

注意:true不带引号

或者,如果该值始终为布尔值,则可以执行以下操作:

if params['protocol']["device1"]

答案 1 :(得分:0)

您必须将JSON解析为哈希,然后再使用它。

# before this line, check if params['protocol'] actually exists.
protocol=JSON.parse(params['protocol']).with_indifferent_access

if protocol[:device1]
   # do your thing
end