Ruby on rails rails 4,activeAdmin,设计不为管理员用户保存重置密码令牌
我正在通过提供电子邮件创建其他管理员成员,并有一个块向新添加的电子邮件发送密码重置:Ruby on rails rails 4,activeAdmin,设计不为管理员用户保存重置密码令牌,ruby-on-rails,ruby,ruby-on-rails-4,devise,activeadmin,Ruby On Rails,Ruby,Ruby On Rails 4,Devise,Activeadmin,我正在通过提供电子邮件创建其他管理员成员,并有一个块向新添加的电子邮件发送密码重置: class AdminUser < ActiveRecord::Base after_create { |admin| admin.send_reset_password_instructions } # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable
class AdminUser < ActiveRecord::Base
after_create { |admin| admin.send_reset_password_instructions }
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable,
:recoverable, :rememberable, :trackable, :validatable
def password_required?
new_record? ? false : super
end
end
正在生成令牌,但是当我在self.save(validate:false)
行之前选中self
时,self.reset\u password\u令牌
没有附加任何内容,它是零
最后让我更复杂的是,当我现在手动运行行self.reset\u password\u token=enc
和self.reset\u password\u token
时,实际上现在保存了该token,在保存它并检查数据库后,新保存的AdminUser的reset\u password\u token
仍然为零
这到底是怎么回事
然而,注意:表明情况不应如此,如下所示:
你好你是怎么做到的?你找到解决办法了吗?我现在遇到了同样的问题!如果我找到该做什么,我会发布一个答案。@AlfredoGallegos我后来决定用另一个Ruby宝石来处理重置密码。创业板是:
def set_reset_password_token
raw, enc = Devise.token_generator.generate(self.class, :reset_password_token)
self.reset_password_token = enc
self.reset_password_sent_at = Time.now.utc
self.save(validate: false)
raw
end
test 'should not clear reset password token for new user' do
user = new_user
assert_nil user.reset_password_token
user.send_reset_password_instructions
assert_present user.reset_password_token
user.save
assert_present user.reset_password_token
end