我尝试手动创建Devise用户。问题是,当我打电话给User.create
时,验证似乎已经过去了。
当我致电User.new
时,生成的用户实例无效。不幸的是,我无法确定原因。
生成的错误消息只是"验证失败:"。
知道发生了什么事吗?
我不想使用User.create
,因为我想在保存之前致电#skip_confirmation!
,以便没有电子邮件发出去。
任何想法如何调试这个?我试过穿过堆栈痕迹,但没有运气。
if user = User.create(params[:user])
user.skip_confirmation!
user.save!
flash[:success] = "New user #{user.email} created."
redirect_to user_root_path
else
flash[:alert] = user.errors
redirect_to user_root_path
end
答案 0 :(得分:0)
尝试为参数数组添加密码。
params[:user][:password] = Devise.friendly_token[0,20]
答案 1 :(得分:0)
我无法解释为什么会有效,但似乎在调用user.confirm!
之前调用user.skip_confirmation!
解决了这个问题。
答案 2 :(得分:0)
更改条件,因为该值将始终为真。正如dwhalen所说。