.present? is a .blank? denial .blank? Which is similar, but clearly unique from .nil? .
.nil? evaluates only the NilClass object.
.blank? evaluates to true when evaluating a string that is not empty and may contain (or not contain) spaces.
This is superfluous to your question, but it is probably convenient to note that .blank? and .present? are Rails methods whereas .nil? - pure Ruby.
EDIT:
If in your example object is false , then no, it is unsafe to assume that !object.nil? == object.present? !object.nil? == object.present? . However, if the object is actually a Ruby / Rails object, then we can safely assume that the operator will evaluate to true.
!false.nil? == false.present?
source share