Когда я получаю доступ к http://localhost:3000/users,, это дает мне NoMethodError in Users#index
. Ошибка выглядит следующим образом:
NoMethodError in Users#index
Showing /Applications/XAMPP/xamppfiles/htdocs/rails_projects/TUTORIALS/todo/app/views/users/index.html.erb where line #2 raised:
undefined method `name' for nil:NilClass
Extracted source (around line #2):
1: <% @users.each do |user| %>
2: hello!! <% @user.name %>
3: <% end %>
Rails.root: /Applications/XAMPP/xamppfiles/htdocs/rails_projects/TUTORIALS/todo
Application Trace | Framework Trace | Full Trace
app/views/users/index.html.erb:2:in `block in _app_views_users_index_html_erb___3451413751309771876_2169723860_4451603425222664605'
app/views/users/index.html.erb:1:in `each'
app/views/users/index.html.erb:1:in `_app_views_users_index_html_erb___3451413751309771876_2169723860_4451603425222664605'
Моя модель user.rb:
# Table name: users
#
# id :integer not null, primary key
# name :string(255)
# email :string(255)
# created_at :datetime
# updated_at :datetime
#
class User < ActiveRecord::Base
attr_accessible :name, :email
My view app / views / users / index.html.erb:
<% @users.each do |user| %>
hello!! <% @user.name %>
<% end %>
Приложение моего контроллера / controllers / users_controller.rb
class UsersController < ApplicationController
def index
@users = User.all
end
Мой файлways.rb содержит:
resources :users
Все мои тесты пройдены (с использованием rspec), включая тестовый пример в spec / controllers / users_controller_spec.rb:
describe "GET 'index'" do
it "should be successful" do
get 'index'
response.should be_success
end
end
Когда я получаю доступ к http://localhost:3000/users/1,, он отлично показывает мне пользователей. Коды в app / views / users / show.html.erb:
<p>
<b>Name:</b>
<%= @user.name %>
</p>
Я сделал rake db: test: prepare, и я думаю, что ошибка связана с db или миграциями. Любая идея? Спасибо!