相关疑难解决方法(0)

如何避免NoMethodError在嵌套哈希中缺少元素,而不重复nil检查?

我正在寻找一种避免nil在深层嵌套哈希中检查每个级别的好方法.例如:

name = params[:company][:owner][:name] if params[:company] && params[:company][:owner] && params[:company][:owner][:name]
Run Code Online (Sandbox Code Playgroud)

这需要三次检查,并且会产生非常难看的代码.有办法解决这个问题吗?

ruby hash ruby-on-rails hash-of-hashes

28
推荐指数
3
解决办法
3547
查看次数

访问由键数组指定的嵌套哈希元素

我正在尝试获得一个通用的解决方案来解决在给定一组键值的情况下访问嵌套哈希中的元素的问题,例如:

hash = { "a" => { "b" => 'foo' }}
array = ["a", "b"]

function(array)
=> "foo"
Run Code Online (Sandbox Code Playgroud)

我猜这可能是一个单行.它也与这个问题密切相关: Ruby将数组转换为嵌套哈希

ruby arrays hash

4
推荐指数
1
解决办法
1513
查看次数

标签 统计

hash ×2

ruby ×2

arrays ×1

hash-of-hashes ×1

ruby-on-rails ×1