2016-01-23 18 views
2

我跟隨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)」導致我檢查我的數據庫丟失身份證,但沒有問題存在。

+1

我沒有看到你打電話'name'任何東西 –

+0

使用你想命令的順序,當您添加問題的兩條線之間這條線會發生什麼ID )'?它會弄亂你的頁面(它只是爲了幫助診斷),但你應該看到頁面上顯示的一個ID數組。如果它不能幫助我們弄清楚你正在做什麼。 – rdnewman

+0

@rdnewman增加了'

<%= @ article.comments.pluck(:id)%>

'給了我一行[5]。爲那篇文章創建一個額外的評論改變了這一行[5,9]。當然,我必須刪除@ article.comments.size才能顯示採摘線。 –

回答

1

您可以嘗試使用.count.length而不是.size

<h3>Comments (<%= @article.comments.count %>)</h3> 

我使用的是ruby 2.3和rails 4.0.0。 `2P @ article.comments.pluck(:

相關問題