Ruby 多维数组中不存在的查询对象

Ruby 多维数组中不存在的查询对象,ruby,hash,Ruby,Hash,我有这个阵列: --- !map:ActiveSupport::HashWithIndifferentAccess search: !map:ActiveSupport::HashWithIndifferentAccess address: test 我对其适用以下规定: address = params['search']['address'] if address # do something end 如果没有搜索对象和地址对象,此代码将引发错误: 你有一个零对象,而你没有

我有这个阵列:

--- !map:ActiveSupport::HashWithIndifferentAccess 
search: !map:ActiveSupport::HashWithIndifferentAccess 
  address: test
我对其适用以下规定:

address = params['search']['address']
if address
  # do something
end
如果没有搜索对象和地址对象,此代码将引发错误:

你有一个零对象,而你没有 期待吧!你可能会想到 数组的实例。发生了错误 在评估无时。[]

ruby中如何处理这样的事情?

首先

[…]例如,我有一个数组:

--- !map:ActiveSupport::HashWithIndifferentAccess 
search: !map:ActiveSupport::HashWithIndifferentAccess 
  address: test
只是想澄清一下,它实际上是一个专门的
散列

其次

您可以这样做:

如果参数[:搜索]和参数[:搜索][:地址]
#对地址做些什么
其他的
#没有给出任何值
结束

正如Jits指出的,您可能有一个数组。ruby中的注释不是
/
,而是
。我修好了。谢谢,你说得对。为什么
params['search']['address']
用于散列?@choise,它是一种特殊的散列,可以将字符串或符号作为键,并将它们视为相同的键。