【问题标题】:undefined method `name' for #<User#<User 的未定义方法“名称”
【发布时间】:2017-02-20 21:44:01
【问题描述】:

您好,当我转到 http://localhost:3000/users/new 时出现标题错误 填写表格创建用户,然后点击“创建用户”按钮

我的表格由名字、姓氏、电子邮件和密码组成

我尝试修复 if 半小时。任何人都可以帮忙吗?谢谢

class UsersController < ApplicationController
  def index
    @users = User.order(:email)
    respond_to do |format|
      format.html # index.html.erb 
      format.json { render json: @users }
    end
  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 users_url, notice: 'User #{@user.email} was successfully created.' }
        format.json { render :created, location: @user }
      else
        format.html { render :new }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

【问题讨论】:

  • 能否请您发布您的模型和视图。
  • 没有像name这样的字段你有first_name, last_name
  • 是的,我的模型看起来像这样验证 :name 存在:真实,唯一性:真实,它应该看起来像这样验证 :email,存在:真实,唯一性:真实

标签: ruby-on-rails ruby-on-rails-4


【解决方案1】:

您可能在模型文件中包含了存在验证

验证:名称,存在:true

当它不作为列真正存在时

【讨论】:

    【解决方案2】:

    你可能有类似的东西:

    <%= f.text_field :name %>
    

    以您的形式。这是不正确的,因为users 表中没有name 列,而是有first_namelast_name 列。

    【讨论】:

      猜你喜欢
      • 2023-02-25
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多