表单数据未保存到数据库

时间:2017-02-06 13:19:06

标签: ruby-on-rails

我是RoR的新手,我正在尝试创建一个注册表单。当我点击“创建我的帐户”时,数据不会保存到数据库中。我添加了资源:用户到我的路线文件。还有其他我想念的东西吗?

这是我的观点(signup.html.erb)

注册

<%= form_for @user, :url => { :action => "create" } do |f| %>
  <%= f.label :emp_id,"Employee ID" %><br>
  <%= f.text_field :emp_id, class: 'form-control' %><br><br>

  <%= f.label :password, "Password" %><br>
  <%= f.password_field :password, class: 'form-control' %><br><br>

  <%= f.label :password_confirmation, "Password Confirmation" %><br>
  <%= f.password_field :password_confirmation, class: 'form-control' %><br><br>

  <%= f.submit "Create my account", class: "btn btn-primary" %>
<% end %>

这是我的控制器

class UsersController < ApplicationController
  def new
    @user = User.new
  end

  def signup
    @user = User.new
  end

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

  def create
    @user = User.new(user_params)    
    if @user.save
      render 'login'
    else
      render 'signup'
    end
  end

  def user_params
    params.require(:user).permit(:emp_id, :password)
  end
end

1 个答案:

答案 0 :(得分:1)

您需要允许:password_confirmation

def user_params
  params.require(:user).permit(:emp_id, :password, :password_confirmation)
end

并确保没有其他验证,如email存在或将导致验证失败