我正在尝试显示属于特定类别的文章,但我得到nil的未定义方法'category_id':当我点击类别显示页面中的文章时出现NilClass错误....该怎么办?有人帮我enter image description here
答案 0 :(得分:1)
当object为nil时,如果你试图访问nil对象的值,那么它会抛出undefined_method错误。
这里@article对象是nil,这就是它抛出错误的原因。
if (str1[i] == '\0' || str2[i] == '\0')
您在资源路径上使用slug而不是id
@article = Article.find_by(slug: params[:id])
@category = Category.find_by_id(@article.category_id) if @article
而不是
/articles/:slug
更改路线
/articles/:id
在终端检查路线是否正确
# config/routes.rb
resources :articles, param: :slug
而不是id它应该slug
$ rails routes | grep article
...
article GET /articles/:id(.:format) articles#show