如何在rails 4中使用params.require

the*_*ava 3 ruby ruby-on-rails ruby-on-rails-4

我有对于具有四个字段,一个登记表这样的私人方法firstnameemailpasswordconfirm password。我不确定如何检查password confirmation

def user_params
    params.require(:user).permit(:name, :email, :password, 
               :password_confirmation)
end
Run Code Online (Sandbox Code Playgroud)

以前,我使用下面的代码。如何将下面的代码转换为使用params.require

User.new(name: params[:name], email: params[:email], 
     password: params[:password], confirmpassword: params[:password])
Run Code Online (Sandbox Code Playgroud)

Par*_*war 5

查看您的代码

User.new(name: params[:name], email: params[:email], 
     password: params[:password], confirmpassword: params[:password])
Run Code Online (Sandbox Code Playgroud)

我怀疑您没有使用password_confirmation字段。在这种情况下,这就是您将使用的方式params.require

def user_params
    params.require(:name)
    params.require(:email)
    params.require(:password)
    params.permit(:name,:email,:password)
end
Run Code Online (Sandbox Code Playgroud)

根据评论更新

如果您正在使用password_confirmation字段,则应该类似于RAILS 3.xx

User.new(name: params[:name], email: params[:email], 
     password: params[:password], confirmpassword: params[:password_confirmation])
Run Code Online (Sandbox Code Playgroud)

而且,这就是strong_parameters(通常是rails 4.xx)的样子。

User.new(user_params)

def user_params
    params.require(:name)
    params.require(:email)
    params.require(:password)
    params.require(:confirm_password)
    params.permit(:name,:email,:password,:confirm_password)
end
Run Code Online (Sandbox Code Playgroud)