测试哈希值

时间:2014-02-27 15:12:31

标签: ruby

给出以下代码:

params = {:async => true, :contact_id => "101"}
puts "async is #{params['async']}"

if params['async'] == true
  puts "Do async stuff"
  # TODO Launch background task
  return [204, {}, ['']]
end

当我看到输出"Do async stuff"时,为什么我永远不会得到行"async is true"

2 个答案:

答案 0 :(得分:5)

写为params[:async]。您的密钥:async Symbol ,而不是 String

以下是修改后的代码:

if params[:async] == true
  puts "Do async stuff"
  # TODO Launch background task
  return [204, {}, ['']]
end

答案 1 :(得分:3)

您的'async'哈希中没有密钥params,因此它将返回nil,其不等于true。您的哈希中 是一个键:async,但您不是要求该密钥。