2013-10-20 53 views
1

嗨,那里我得到一个NoMethodError用户#显示错误在我的Rails 3.2应用程序使用设计。未定义的方法`firstname'为零:NilClass

上我的节目低于2行错误:

<strong>Firstname:</strong> 
    <%= @user.firstname %> 
</p> 
<p> 
<strong>dateofbirth:</strong> 

(如果我删除第一名称框中它的出生日期错误等)

我使用的设计为我的用户,但生成了一个用户控制器来放置我的视图。

我不知道是什么问题,因为我跑我的迁移和名字在架构

存在这里的用户控制器:

class UsersController < ApplicationController 
# before_action :set_user, only: [:show, :edit, :update, :destroy] 

    def find 
    @user = User.new 
    end 

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

    # GET /users 
    # GET /users.json 
    def index 
    @users = User.all 
    end 

    # GET /users/1 
    # GET /users/1.json 
    def show 
    end 

    # GET /users/new 
    def new 
    @user = User.new 
    end 

    # GET /users/1/edit 
    def edit 
    end 

    # POST /users 
    # POST /users.json 
    def create 
    @user = User.new(user_params) 

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

    # PATCH/PUT /users/1 
    # PATCH/PUT /users/1.json 
    def update 
    respond_to do |format| 
     if @user.update(user_params) 
     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.destroy 
    respond_to do |format| 
     format.html { redirect_to users_url } 
     format.json { head :no_content } 
    end 
    end 

    private 
    # Use callbacks to share common setup or constraints between actions. 
    def set_user 
     @user = User.find(params[:id]) 
    end 

    # Never trust parameters from the scary internet, only allow the white list through. 
    def user_params 
     params.require(:user).permit(:username, :firstname, :dateofbirth, :lastname, :gender, :location, :email, :password) 
    end 
end 
+0

尝试摆脱底部的'def user_params' - 如果您不使用Rails 4,我认为这不会做任何事情。 – dax

回答

0

你的控制器定义了两种显示方法。尝试删除第二个。我相信空的显示方法会覆盖您的填充显示方法。在你看来,@user不存在,所以它的计算结果为零。 Nil既没有名字方法也没有日期分娩方法。因此NoMethodError。

相关问题