在 Rails 中处理 nil 错误的正确方法是什么?我经常收到如下错误:
NoMethodError(nil:NilClass 的未定义方法“问题”):
例如,假设我的应用中有章节,每个章节都有一个问题。我想从当前问题中调用上一章的问题,所以我在 question.rb 中编写了以下代码:
def previous_question
self.chapter.previous.question
end
这可能会导致上述错误,所以我在模型中编写了一个方法来检查这是否会导致 nil 结果:
def has_previous_question?
self.chapter and self.chapter.previous and self.chapter.previous.question
end
如果我确保在调用之前调用previous_question
它,它可以工作,但它看起来很荒谬。有没有更好的方法来处理 Rails 中的 nil 错误?