如何为nil:NilClass修复“未定义的方法'model_name'”

问题描述 投票:-1回答:1

我已经尝试查找错误已有几天了,但我无法解决。我总是收到错误

"undefined method `model_name' for nil:NilClass"

这是我正在使用的代码:

查看:

= simple_form_for @new_user do |f|
    = f.input :first_name
    = f.input :last_name
    = f.input :email, required: false
    = f.input :phone_number
    = f.button :submit

控制器:

def create
        if params[:user].present?
            @new_user = User.new(user_params)
            if @new_user.first_name.nil?
                @new_user.first_name = ""
            end
            if @new_user.last_name.nil?
                @new_user.last_name = ""
            end
            if @new_user.email.nil?
                @new_user.email = ""
            end
            if @new_user.save
                redirect_to 'index'
            else
                reder 'create'
            end
        end
    end

    private
    def user_params
        params.require(:user).permit(:first_name, :last_name, :email, :phone_number)
    end

路线:

  resources :user

  root 'users#welcome'

  get '/create' => 'users#create'
  get '/welcome' => 'users#welcome'
  get '/index' => 'users#index'

SQL表:

    CREATE TABLE IF NOT EXISTS users
    (
        id serial not null
                constraint users_pkey
                primary key,

        created_at      TIMESTAMP WITHOUT TIME ZONE NOT NULL,
        updated_at      TIMESTAMP WITHOUT TIME ZONE NOT NULL,
        deleted_at      TIMESTAMP WITHOUT TIME ZONE,
        email           VARCHAR NOT NULL,
        first_name      VARCHAR NOT NULL,
        last_name       VARCHAR NOT NULL,
        phone_number    VARCHAR
    );
ruby-on-rails ruby haml
1个回答
0
投票

您的控制器中有一个错字“重发器”。您可以共享提交表单时得到的确切错误消息或错误跟踪吗?此外,提交表格后,您是否可以验证是否在数据库中创建了记录?

© www.soinside.com 2019 - 2024. All rights reserved.