Fyi,使用Rails。Ruby case语句没有按预期执行
鉴于user = User.find(1)
这种情况语句返回nil
时,它应该返回的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
我在想什么?使用pry,self.class == User
返回true。
是什么'do_something_with_user'返回?它有可能返回'nil'吗?尝试调试打印以确定哪个分支得到执行。 –