2010-08-18 42 views
3

我收到以下錯誤:第一次Rails變量加載,然後是零!

ActionView::TemplateError (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.include?) on line #24 of app/views/index/index.html.erb: 
21: <% @achievements.each do |achievement| %> 
22:  <%= achievement.name %> 
23:  <%= achievement.level %> 
24:  by <%= achievement.user.username %><br/> 
25: <% end %> 

奇怪的是,當索引頁面加載第一次那麼就沒有任何問題。刷新時,出現上述錯誤。

控制器看起來是這樣的:

class IndexController < ApplicationController 
    def index 
     @achievements = Achievement.find(:all) 
    end 
end 

有什麼事情做的緩存?還是它使用了太多的內存?如果是這樣,我可以用另一種方式加載用戶名嗎?我很困惑!

+0

顯示控制器的動作在這裏 – Bohdan 2010-08-18 13:59:22

+0

控制器上面 – amaseuk 2010-08-18 14:05:55

+4

加入行動嘗試渴望加入「加載用戶:包括=>:用戶「在您的發現(Achievement.find(:所有,:包括=>:用戶) – 2010-08-18 14:37:44

回答

2

嘗試渴望通過增加加載用戶「:包括=>:用戶」您的發現:

class IndexController < ApplicationController 
    def index 
     @achievements = Achievement.find(:all, :include => :user) 
    end 
end 
相關問題