instance method
try
Ruby on Rails 2.3.18
Since v2.3.18Signature
try(method, *args, &block)
Invokes the method identified by the symbol method, passing it any arguments and/or the block specified, just like the regular Ruby Object#send does.
Unlike that method however, a NoMethodError exception will not be raised and nil will be returned instead, if the receiving object is a nil object or NilClass.
Examples
Without try
@person && @person.name
or
@person ? @person.name : nil
With try
@person.try(:name)
try also accepts arguments and/or a block, for the method it is trying
Person.try(:find, 1) @people.try(:collect) {|p| p.name}
Parameters
-
methodreq -
argsrest -
blockblock
Source
# File activesupport/lib/active_support/core_ext/try.rb, line 25
def try(method, *args, &block)
send(method, *args, &block)
end
Defined in activesupport/lib/active_support/core_ext/try.rb line 25
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in Object