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'嗎?嘗試調試打印以確定哪個分支得到執行。 –