Pregunta

Estoy recibiendo el siguiente error:

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 %>

Lo extraño es que cuando la página de índice se carga la primera vez, entonces no hay ningún tipo de problemas. Cuando restauro, me sale el error anterior.

Las miradas del controlador como este:

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

¿Tiene algo que ver con el almacenamiento en caché? O es demasiada memoria? Si es así, puedo cargar el nombre de usuario de otro modo, tal vez? ¡Estoy confundido!

¿Fue útil?

Solución

Trate de carga ansiosos los usuarios añadiendo ": incluyen =>: el usuario" en su hallazgo:

class IndexController < ApplicationController
    def index
        @achievements = Achievement.find(:all, :include => :user)
    end
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top