Carriles cargas variables primera vez y luego es nula!
-
29-09-2019 - |
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!
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