在我的 User.rb 模型中,我有这一行:
validates_confirmation_of :password, :message => "你的密码应该匹配。"
然后当用户注册时,密码匹配,一切都很好......直到我想向用户对象添加更多信息,然后再次保存。但是运行 @user.save 会返回我的密码不匹配的错误。在我的注册控制器方法中,我有以下几行:
@user = User.new(params[:user])
if request.post?
if !@user.save
@errors = @user.errors
else
# crucial user details:
@user.salt = [Array.new(6){rand(256).chr}.join].pack("m").chomp
@user.password = encrypted_password(@user.password, @user.salt) #hash this
if !@user.save
puts "error for some reason in signup"
puts @user.errors.inspect
end
经过检查,@users.errors.inspect 会打印出:#["Your passwords should match."]}。他们做到了,否则,它永远不会通过第一个 .save 调用。关于我在这里做错了什么有什么建议吗?
谢谢你的帮助。