0

我正在尝试创建一个 rails 3.2.13 应用程序,在该应用程序中创建用户时会为该用户自动生成密码。现在,我正在使用 before_validate 生成密码并将其分配给用户对象上的密码和密码确认字段,然后再创建,但设计仍然抱怨密码仍然为空。

设计接受我为用户对象生成的密码的最佳方法是什么?如果可能的话,如果能够做到这一点而不必覆盖内部验证,那就太好了。

4

2 回答 2

0

I don't known what you are doing wrong... Tried quickly here and everything turned out ok.

Here is my model

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  attr_accessible :email, :password, :password_confirmation, :remember_me

  before_validation :set_user_password

  def set_user_password
    @password = Devise.friendly_token
  end 
end

I didn't even had to set password_confirmation just password and it saved without errors at the rails console.

于 2013-04-25T14:38:17.643 回答
-1

以前的解决方案很棒。但是您不能重设密码。set_user_password 应该只在创建帐户时执行。

before_validation :set_user_password, :on => :create
def set_user_password
    @password = Devise.friendly_token
end
于 2013-11-13T23:40:27.470 回答