我正在寻找一种避免nil
在深层嵌套哈希中检查每个级别的好方法.例如:
name = params[:company][:owner][:name] if params[:company] && params[:company][:owner] && params[:company][:owner][:name]
Run Code Online (Sandbox Code Playgroud)
这需要三次检查,并且会产生非常难看的代码.有办法解决这个问题吗?
我正在尝试获得一个通用的解决方案来解决在给定一组键值的情况下访问嵌套哈希中的元素的问题,例如:
hash = { "a" => { "b" => 'foo' }}
array = ["a", "b"]
function(array)
=> "foo"
Run Code Online (Sandbox Code Playgroud)
我猜这可能是一个单行.它也与这个问题密切相关: Ruby将数组转换为嵌套哈希