我有一個帶有generate_password操作的用戶模型。 當我創建一個新的用戶,將自動生成的密碼,並插入到PARAMS,如:如何避免密碼驗證,如果它生成幷包含在參數中
"user_params"=>
{"name"=>"name",
"surname"=>"secname",
"password"=>"j6WW9kj6"}
,所以用戶不必感到密碼字段。並且,由於我有密碼提供驗證,因此當我嘗試創建新用戶時,rails會引發驗證錯誤。
我有一個帶有generate_password操作的用戶模型。 當我創建一個新的用戶,將自動生成的密碼,並插入到PARAMS,如:如何避免密碼驗證,如果它生成幷包含在參數中
"user_params"=>
{"name"=>"name",
"surname"=>"secname",
"password"=>"j6WW9kj6"}
,所以用戶不必感到密碼字段。並且,由於我有密碼提供驗證,因此當我嘗試創建新用戶時,rails會引發驗證錯誤。
根據我的理解,我可以說,當用戶第一次創建時,您正在嘗試生成密碼。
我認爲這個問題你可以使用before_create
在User
模型。
before_create :generate_password
答案很簡單。我只是應該在users_controller中運行password_generate方法,並且ActiveRecord完成所有操作:
@user = User.new user_params
@user.password = @user.generate_password
謝謝。