0

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エラーを処理するより良い方法はありますか?

4

3 に答える 3

1

私のお気に入りのビュー レンダリング方法の 1 つ:

http://apidock.com/rails/Object/try

于 2013-05-21T20:41:03.850 に答える
0

興味深いアプローチはnil オブジェクトを使用することですが、すべての状況に適しているわけではありません...

于 2013-05-21T21:46:08.567 に答える