我在我的(设计)用户控制器中添加了一个自定义方法:
def confirm
@user = User.find(params[:id])
@user.skip_confirmation!
respond_to
if @user.save
//display success message
else
// display error message
end
end
end
当我尝试通过它确认用户时,保存失败,@user.errors 中有两个错误:密码和密码确认
即使在 Rails 控制台中,如果我尝试
@user.skip_confirmation!
@save
我得到回滚并且保存失败。
任何想法,将不胜感激..
附加信息
造成这种情况的问题是
validates_presence_of :password, :password_confirmation
在我的用户模型中。即使用户在注册时输入了密码和密码确认,它们也会被散列在一起以形成 encrypted_password。例如,当我在控制台中找到一个用户时,该用户有一个 encrypted_password,但没有密码或 password_confirmation。
我试过这个
validates_presence_of :password, :password_confirmation, :on => :create
但是,它不会强制用户在“更改密码”屏幕上同时输入密码和确认。
关于如何解决这个问题的任何想法?