-1

我有我使用以下语法创建一个viewcontrollermodelmigration一个简单的项目:而在模型协会

rails g scaffold user name:string contact:string 

然后我创建了一个模型只用下面的命令:

rails g model event event_name:string event_place:string 

然后我在模型中创建关联,您可以在下面的代码中看到。

代码的 user.rb

是以下:

代码的 event.rb
class User < ActiveRecord::Base 
    has_many :events 


    attr_accessible :contact, :name, :events_attributes 

    accepted_nested_attributes_for :events 

end 

类以下:

class Event < ActiveRecord::Base 
    belongs_to :user 

    attr_accessible :event_name, :event_place 
end 

index.html.erb的代码如下:

<h1>Listing users</h1> 

<table> 
    <tr> 
    <th>Name</th> 
    <th>Contact</th> 
    <th></th> 
    <th></th> 
    <th></th> 
    </tr> 

<% @users.each do |user| %> 
    <tr> 
    <td><%= user.name %></td> 
    <td><%= user.contact %></td> 
    <td><%= link_to 'Show', user %></td> 
    <td><%= link_to 'Edit', edit_user_path(user) %></td> 
    <td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td> 
    </tr> 
<% end %> 
</table> 

<br /> 

<%= link_to 'New User', new_user_path %> 

和我还没有在我看来,没有改变任何东西.....作为scaffo ld生成自己。当我在浏览器上运行我的代码,它显示了以下错误:

NoMethodError in Users#index 

Showing /home/wasif/projects/club/app/views/users/index.html.erb where line #12 raised: 

undefined method `each' for nil:NilClass 

Extracted source (around line #12): 

9:  <th></th> 
10: </tr> 
11: 
12: <% @users.each do |user| %> 
13: <tr> 
14:  <td><%= user.name %></td> 
15:  <td><%= user.contact %></td> 

这是users_controller.rb

class UsersController < ApplicationController 
    # GET /users 
    # GET /users.json 
    def index 
    @users = user.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @user } 
    end 
    end 

    # GET /users/1 
    # GET /users/1.json 
    def show 
    @User = User.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.json { render json: @user } 
    end 
    end 

    # GET /user/new 
    # GET /user/new.json 
    def new 
    @user = User.new 

    respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @user } 
    end 
    end 

    # GET /user/1/edit 
    def edit 
    @user = User.find(params[:id]) 
    end 

    # POST /users 
    # POST /users.json 
    def create 
    @user = User.new(params[:user]) 

    respond_to do |format| 
     if @user.save 
     format.html { redirect_to @user, notice: 'User was successfully created.' } 
     format.json { render json: @user, status: :created, location: @user } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # PUT /users/1 
    # PUT /users/1.json 
    def update 
    @user = User.find(params[:id]) 

    respond_to do |format| 
     if @user.update_attributes(params[:user]) 
     format.html { redirect_to @user, notice: 'User was successfully updated.' } 
     format.json { head :no_content } 
     else 
     format.html { render action: "edit" } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

    # DELETE /users/1 
    # DELETE /users/1.json 
    def destroy 
    @user = User.find(params[:id]) 
    @user.destroy 

    respond_to do |format| 
     format.html { redirect_to user_url } 
     format.json { head :no_content } 
    end 
    end 
end 

我不知道现在该做什么,我怎么能删除错误,作为即时通讯初学者代码所以请帮我现在做什么。提前致谢!

+1

请显示您的'users_controller.rb'。 –

+0

你在你的控制器代码中缺少一些东西。在'UsersController'代码这里。 –

+0

你运行过'rake db:migrate'吗? –

回答

1

U的索引方法错误代码:

@users = User.all应改为使用的@users = user.all

def index 
    @users = User.all 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @users } 
    end 
    end 
+0

我也在想。 user.all应该给你一个错误。嗯。 –

+0

user.all是我的打字错误...它的代码中完美无瑕的User.all ...但有相同的错误。 –

-1

请检查数据库,并确保你在表列“user_ID的”“活动”

+0

这不会导致这里描述的错误。 – Mischa