如何在rails 4中使用params.require

时间:2014-06-16 11:50:36

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

我有一个这样的私有方法,用于注册表单,其中包含四个字段firstnameemailpasswordconfirm password。我不确定如何查看password confirmation

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

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

User.new(name: params[:name], email: params[:email], 
     password: params[:password], confirmpassword: params[:password])

1 个答案:

答案 0 :(得分:4)

查看您的代码

User.new(name: params[:name], email: params[:email], 
     password: params[:password], confirmpassword: params[:password])

我怀疑你没有使用password_confirmation字段。在这种情况下,您将使用params.require

def user_params
    params.require(:name)
    params.require(:email)
    params.require(:password)
    params.permit(:name,:email,:password)
end

根据评论更新

如果您使用的是password_confirmation字段,那么这应该与 RAILS 3.x.x

一样
User.new(name: params[:name], email: params[:email], 
     password: params[:password], confirmpassword: params[:password_confirmation])

而且,这就是strong_parameters的方式(通常使用 rails 4.x.x

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