Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

235
Vistas
ROR: NoMethodError en Inicio#índice

Estoy aprendiendo Ruby on Rails y como parte de la práctica estoy construyendo un sistema de seguimiento de errores, que tiene un administrador, un desarrollador y un control de calidad.

Quiero mostrar todos los proyectos que el gerente ha creado en su pantalla de inicio. Estos proyectos están presentes en una tabla de proyectos.

Proyectos

En mi manager_controller, tengo este código:

 class ManagerController < ApplicationController def index @projects = Project.all end def create end end

Y este es mi index.html.erb en vistas/administrador:

 <div class="container"> <h1>Manager's Feed</h1> <p>Hello <%=current_user.username%></p> <%= link_to "Create Project", new_project_path, :class => "btn btn-success"%> <table id='employee-table' class="table table-hover"> <thead class="thead-light"> <tr> <th>ID</th> <th>Title</th> <th colspan="2"></th> </tr> </thead> <tbody> <% @projects.each do |project| %> <tr> <td><%= project.id %></td> <td><%= project.title %></td> </tr> <% end %> </tbody> </table> <div> <%= link_to "Logout", destroy_user_session_path, :method => :delete %> </div> </div>

Pero esto me está dando el siguiente error:

Error

No puedo ver por qué @projects es Nulo como lo había definido en mi controlador. ¿Alguien puede ayudarme a solucionar este problema?

Actualización 1 Mi archivo route.rb:

 Rails.application.routes.draw do get 'project/show' resources 'project' resources 'manager' resources 'developer' resources 'qa' devise_for :users get 'home/index' root to: "home#index" # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html end

Controlador de inicio:

 class HomeController < ApplicationController before_action :authenticate_user! def index @projects = Project.all if current_user.manager? render '../views/manager/index.html.erb' end if current_user.developer? render '../views/developer/index.html.erb' end if current_user.quality_assurance? render '../views/qa/index.html.erb' end end end
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

En su pila, puede leer en la parte inferior app/controllers/home_controller.rb

Está inicializando @projects en managers_controller.rb .

Use esto en el controlador correcto.

 class HomeController < ApplicationController def index @projects = Project.all end end

Su ruta predeterminada está definida por root to: "home#index" con conduce a HomeController#index . Allí, está utilizando render que simplemente "muestra" el contenido. Sugeriría usar redirect_to para redirigir el flujo al controlador correcto con algo como:

 class HomeController < ApplicationController before_action :authenticate_user! def index @projects = Project.all if current_user.manager? redirect_to managers_path end if current_user.developer? redirect_to developers_path end if current_user.quality_assurance? redirect_to qas_path end end end

Puede encontrar todos los valores *_paths que usé ejecutando rails routes .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda