我正在尝试显示属于特定类别的文章,但是当我单击类别显示页面中的文章时,我正在为nil:NilClass错误获得未定义的方法"category_id"。怎么办?有人帮我在这里输入图像描述
当对象为 nil 时,如果您尝试访问 nil 对象的值,则抛出undefined_method错误。
在这里@article对象为 nil,这就是它抛出错误的原因。
@article = Article.find_by(slug: params[:id])
@category = Category.find_by_id(@article.category_id) if @article
您在资源路由上使用 slug 而不是 id
/articles/:slug
而不是
/articles/:id
更改路线
# config/routes.rb
resources :articles, param: :slug
在终端检查您的路线是否正确
$ rails routes | grep article
...
article GET /articles/:id(.:format) articles#show
而不是id,它应该蛞蝓
$ rails routes | grep article
...
article GET /articles/:slug(.:format) articles#show