Pregunta método indefinido cada rails error


Estaba probando Ruby on Rails a través del tutorial ubicado en http://ruby.railstutorial.org. Llegué al punto en el que podía crear usuarios y mostrar su nombre y gravatar en:

http://localhost:3000/users/1

Ahora quiero mostrar todos los usuarios cuando un usuario va a:

http://localhost:3000/users/

Aquí está mi controlador:

class UsersController < ApplicationController

  def index
    @user = User.all
  end      

  #...
end

Aquí está mi punto de vista.

#View for index action in user's controleer

<h1>All users</h1>

<ul class="users">
  <% @users.each do |user| %>
    <li><%= user.content %></li>
  <% end %>
</ul>

Obtuve el siguiente error.

undefined method `each' for nil:NilClass

Alguien puede decirme por qué la página de índice no funciona como yo quiero.


5
2018-01-31 14:57


origen


Respuestas:


El problema proviene de @users variable que no existe:

En su acción de índice, establezca @user a todos los usuarios:

def index
  @user = User.all
end

Por convención, utilizamos nombres pluralizados cuando recuperamos varias entradas de la base de datos, es por eso que está llamando @users (observe el 's') en la vista. Simplemente cambie el nombre de su @user a @users y todo estará bien;)

def index
  @users = User.all
end

13
2018-01-31 15:09