Переменная Rails загружается сначала, а затем равна нулю! - PullRequest
3 голосов
/ 18 августа 2010

Я получаю следующую ошибку:

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

Это как-то связано с кешированием? Или он использует слишком много памяти? Если да, могу ли я загрузить имя пользователя другим способом? Я не совсем понимаю!

1 Ответ

2 голосов
/ 18 августа 2010

Попробуйте загрузить пользователей, добавив ": include =>: user" в вашем поиске:

class IndexController < ApplicationController
    def index
        @achievements = Achievement.find(:all, :include => :user)
    end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...