0

投稿、コメント、質問の 3 つのモデルがあります。コメントは投稿に属し、質問はコメントに属します。投稿表示ページのコメントに属する最後の質問を表示しようとすると、エラーが発生します。エラーは次のとおりです。

undefined method `[]' for nil:NilClass

これは、投稿の表示ページによって呼び出されている部分的な _comment.html.erb にあるエラーを示す行です。

<%= comment.questions.last[:body] %>   

エラーは、投稿ページに表示されているという事実に関係していると思われます

  <%= post.comments.last[:body] %>

私がしたいことをします。

助けてくれてありがとう。

4

2 に答える 2

0

コメントに質問がない場合は質問comment.questions.lastがあり、それnilを呼び出すと[:last]エラーが発生します。これを試して

  comment.questions.last.try(:[],:body)

tryメソッドはnil、それを呼び出すオブジェクトが nil の場合に戻ります。それ以外の場合は、渡されたメソッドをオブジェクトで評価します。

于 2013-09-21T21:56:50.237 に答える