在我的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打印出来:#[“你的密码应该匹配。”]}。他们这样做了,否则,它永远不会通过第一次.save调用。关于我在这里做错了什么的建议?
感谢您的帮助。
答案 0 :(得分:2)
这解决了它:
validates_confirmation_of:password,:on => :create,:message => “你的密码应该匹配。”