NameError в UsersController#show

В настоящее время я работаю над учебником по Ruby on Rails Майклом Хартлом. Я пытаюсь добавить страницу для каждого пользователя в моей базе данных, создав HTML-страницу со встроенной страницей ruby ​​в каталоге представлений. Код для show.html.erb ниже:

    <%= @user.name %>, <%= @user.email %>

Когда я добавляю пользователя в файл user_controller.rb, он выглядит так:

class UsersController < ApplicationController
    def show
       @user = User.find(params[:id])
    end

    def new
    end
  end

Когда я запускаю сервер rails и нажимаю открыть URL-адрес users / 1, я получаю NameError с жалобой на неинициализированную константу. Ошибка и трассировка ниже:

NameError in UsersController#show
uninitialized constant UsersController::User

Rails.root: /usr/sample_app
Application Trace | Framework Trace | Full Trace

app/controllers/users_controller.rb:3:in `show'
actionpack (3.2.12) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
actionpack (3.2.12) lib/abstract_controller/base.rb:167:in `process_action'
actionpack (3.2.12) lib/action_controller/metal/rendering.rb:10:in `process_action'
actionpack (3.2.12) lib/abstract_controller/callbacks.rb:18:in `block in process_action'
activesupport (3.2.12) lib/active_support/callbacks.rb:414:in         
.
.
.
.

Пожалуйста, дайте мне знать, как это сделать, потому что я не могу пройти тесты спецификаций с этой ошибкой. Если у кого-то есть какие-либо предложения или идеи, я буду очень признателен. Спасибо.

1 ответ

Решение

Имя файла контроллера должно быть users_controller.rb

Как вы упомянули в комментарии you don't have any User model defined, Для создания модели запустить rails g model user name:string email:string, Это создаст User модель с атрибутами name and email,

Попробуйте Rails scaffolding и посмотреть, какие файлы он создает (в controller, model and views пока игнорируйте другие файлы) и просмотрите содержимое этих файлов. Использовать эшафот для создания User как показано ниже:

     rails g scaffold user name:string email:string
     rake db:migrate 
Другие вопросы по тегам