如何让设备2.2.3接受rails 3.2.13 app的自动生成密码

时间:2013-04-24 15:30:51

标签: devise ruby-on-rails-3.2

我正在尝试创建rails 3.2.13 app,在创建用户时,会自动为该用户生成密码。现在我正在使用before_validate来生成密码并将密码分配给用户对象上的密码和password_confirmation字段,然后设计仍然会抱怨密码仍为空白。

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

2 个答案:

答案 0 :(得分:0)

我不知道你做错了什么......快点在这里尝试,一切都很好。

这是我的模特

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

我甚至不必将password_confirmation设置为密码,并且在rails控制台上保存没有错误。

答案 1 :(得分:-1)

之前的解决方案非常棒。但是您无法重置密码。 set_user_password只应在创建帐户时执行。

before_validation :set_user_password, :on => :create
def set_user_password
    @password = Devise.friendly_token
end