Ruby hashes e “tente”

trymétodo é uma Objectextensão de ActiveSupport. É útil em alguns casos (por exemplo, chamadas em cadeia). Geralmente é usado para chamar um método em um objeto se ele existir ou retornar nil se não existir, em vez de lançar uma exceção ( NoMethodError):

>> object.try(:nonexistent_method)
=> nil

O uso com hashes é menos intuitivo:

>> hash = { a: 1, b: 2 }
=> {:a=>1, :b=>2}
>> hash.try(:a)
=> nil
>> hash.try(:[], :a)
=> 1