我跟隨Jumpstartlab的Blogger Rails教程。加入@ article.comments.size時導軌爲「nil:NilClass」的undefined method'name'錯誤
我正在使用Ruby 2.2.1和Rails 4.0.0。
的 「未定義的方法 '名' 的零:NilClass」 引發錯誤,當我加
(<%= @article.comments.size %>)
到
<h3>Comments</h3>
在〜/ show.html.erb
。
如果我換用
<%= render partial: 'articles/comment', collection: @article.comments %>
我沒有得到任何錯誤,一切都顯示正常此行(只是在錯誤的地方的標題顯示 - 的意見之後,而不是之前)。
我試過git hard reset
來恢復整個評論部分並重做所有它,但我得到了同樣的錯誤。
這裏是我的〜/ show.html.erb代碼時,它會引發錯誤:
<h1><%= @article.title %></h1>
<p><%= @article.body %></p>
<h3>Comments (<%= @article.comments.size %>)</h3>
<%= render partial: 'articles/comment', collection: @article.comments %>
<%= render partial: 'comments/form' %>
<%= link_to '<< Back to Articles List >>', articles_path %>
<%= link_to 'edit', edit_article_path(@article) %>
<%= link_to 'delete', article_path(@article), method: :delete, data: {confirm: "Really delete the article?"} %>
我使用...
articles.rb:
class Article < ActiveRecord::Base
has_many :comments
end
comment.rb:
class Comment < ActiveRecord::Base
belongs_to :article
end
我的f九是交換
<h3>Comments (<%= @article.comments.size %>)</h3>
與
<%= render partial: 'articles/comment', collection: @article.comments %>
但是這顯示在錯誤的地方頭。它對我來說也沒有任何意義,爲什麼這是有效的。請注意,有沒有錯誤,如果我不包括
(<%= @article.comments.size %>)` in `<h3>Comments
解決「NoMethodError undefined method `name' for nil:NilClass)」導致我檢查我的數據庫丟失身份證,但沒有問題存在。
我沒有看到你打電話'name'任何東西 –
使用你想命令的順序,當您添加問題的兩條線之間這條線會發生什麼ID )'?它會弄亂你的頁面(它只是爲了幫助診斷),但你應該看到頁面上顯示的一個ID數組。如果它不能幫助我們弄清楚你正在做什麼。 – rdnewman
@rdnewman增加了'
<%= @ article.comments.pluck(:id)%>
'給了我一行[5]。爲那篇文章創建一個額外的評論改變了這一行[5,9]。當然,我必須刪除@ article.comments.size才能顯示採摘線。 –