我正在使用一些基本的Rails腳手架,並且知道實例變量通常用於視圖中以顯示從控制器傳遞的數據。Rails - 實例變量nil對象在視圖中
在我的應用程序,有一個在數據庫中的幾個樣本用戶(我可以在控制檯拉起使用results = Result.all
)
在我results_controller文件時,指數行動也有這樣的代碼(由導軌自動生成)
@results = Result.all
所以我想找出並顯示有多少用戶有在NEW.html.erb
(不index.html.erb)上,所以我把這個
<%= @results.count %>
in views/results/NEW.html.erb但它給了我一個關於零對象的錯誤消息。你可以解釋嗎?
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.count
但是,如果我把這個
<%= @results.count %>
在INDEX.html.erb
,它顯示了數...
注意:這樣做的目的是以下幾點:上new.html.erb,我有一個表單讓用戶輸入一些簡單的信息。我正在使用計劃使用<%= @ results.count%>告訴用戶在該頁面上有多少人已經提交了信息...
如果你不能回答這個問題,你能否解釋另一種方法達到同樣的效果?
您是否嘗試過這個同樣的Rails環境(和數據庫)下? – m33lky
是的,相同的應用程序,相同的環境,相同的數據庫... @ results.count在index.html.erb中工作,但不在new.html.erb中 – Leahcim
您的聲音也需要'@results = Result.all'在'新'行動以及'索引'行動。 – zetetic