AKW*_*KWF 2 ruby hash ruby-on-rails
如果值:
myhash['first_key']['second_key']
Run Code Online (Sandbox Code Playgroud)
存在,然后我需要得到它.但'second_key'可能根本不存在,my_hash如果不是,我不希望该行抛出异常.
现在我用一个丑陋的条件包装整个东西,如下:
if myhash['first_key'].present? and myhash['first_key']['second_key'].present?
...
end
Run Code Online (Sandbox Code Playgroud)
我敢肯定必须有更简单的东西.
你可以随时使用try:
hsh.try(:[], 'first_key').try(:[], 'second_key')
Run Code Online (Sandbox Code Playgroud)
仅供参考:如果您正在进行大量这些检查,您可能需要重构代码以避免这些情况.