2017-11-05 8 views
0

私は記事を表示しようとしていますが、perticularカテゴリに属していますが、未定義のメソッド 'category_id'がnilになっています:カテゴリ表示ページの記事をクリックするとNilClassエラーが発生します。誰かが助けてくれるenter image description hereArticlesController#showのNoMethodErrorは何ですか?とnilのための未定義のメソッド `category_id 'は何ですか?NilClass?

答えて

1

オブジェクトがnilで、その時にnilオブジェクトの値にアクセスしようとすると、undefined_methodエラーがスローされます。

ここで@articleオブジェクトはnilなので、エラーを投げる理由です。

@article = Article.find_by(slug: params[:id]) 
@category = Category.find_by_id(@article.category_id) if @article 

あなたはあなたのルートが正しいことを確認し、端末で

/articles/:id 

変更あなたのルート

# config/routes.rb 
resources :articles, param: :slug 

/articles/:slug 

代わりにリソースルートに代わり、IDのスラグを使用しています

$ rails routes | grep article 
... 
article GET /articles/:id(.:format)  articles#show 

代わりIDのそれは、SLUGべき

$ rails routes | grep article 
... 
article GET /articles/:slug(.:format)  articles#show 
関連する問題