如果hash有密钥,请使用它.否则,请使用不同的密钥

Lui*_*igi 5 ruby dictionary

response 是一个哈希,看起来像两件事之一:

response = {'demo' => 'nil', 'test_01' => 'Demo Data'}
Run Code Online (Sandbox Code Playgroud)

要么

response = {'test' => 'Demo Data', 'demo' => 'nil'}
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

if response.has_key? 'test_01'
    new_response.update(:nps_score  => response['test_01']
else
    new_response.update(:nps_score  => response['test']
end
Run Code Online (Sandbox Code Playgroud)

是否有更"红宝石"的方法?也许是使用||的东西 运营商?我正在使用ruby 2.0.0和rails 4.0.0.

Chu*_*uck 11

这就是Hash的#fetch方法.

new_response.update(nps_score: response.fetch('test_01', response['test']))
Run Code Online (Sandbox Code Playgroud)