Fyi, using Rails.
Given user = User.find(1)
This case statement returns nil when it should return the result of self.do_something_with_user.
def case_method case self.class when User self.do_something_with_user # assume does not return nil when SomeOtherClass self.do_something_else else nil end end user.case_method # => nil What am I missing? Using pry, self.class == User returns true.
do_something_with_userreturn? Is it possible that it returnsnil? Try debug printing to determine exactly which branch gets executed.