【发布时间】:2013-02-16 00:53:45
【问题描述】:
我正在尝试手动创建一个设计用户。问题是验证似乎只有在我调用 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
【问题讨论】:
-
你检查过errors对象吗?
-
user = User.create(params[:user])将永远是真实的,除非引发异常。当你使用User.new(params[:user])时,具体的错误是什么?发布 params 哈希会有所帮助。
标签: ruby-on-rails ruby-on-rails-3 devise devise-confirmable