ruby-on-rails – 优雅地处理嵌套哈希中的空白值

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 优雅地处理嵌套哈希中的空白值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > How to avoid NoMethodError for missing elements in nested hashes,without repeated nil checks?16个
我相信我以前见过这个优雅的解决方案,但我找不到它:

我有一个rails控制器,可能或者可能没有以下hash元素:

myhash[:parent_field]

在该父字段内,子元素也可以为空.我目前通过(非常丑陋的)方法检查:

if (!myhash[:parent_field] || !myhash[:parent_field][:child_field] || myhash[:parent_field][:child_field].blank?)

哪个有效,但我认为 – 当然 – 必须有一个更优雅的方式.只是重申:

> myhash [:parent_field]可能存在也可能不存在
>如果确实存在,myhash [:parent_field] [:child_field]可能存在也可能不存在
>如果存在,则可能是空白,也可能不是空白.

解决方法

#fetch是你的朋友:
my_hash.fetch(:parent,{})[:child].blank?

猜你在找的Ruby相关文章