如果在User 模型中有定义:
此时如果想使用如下更新user的元素
就会因为密码校检不通过而失敗
在这里 http://www.iteye.com/topic/177000 看到这問題,看到里面的解决方案都不算很好,于是另开一贴记下自己的看法
解决方案就是使用如下来定义user的模型:
[code]
validates_length_of :password,:within => 6..40,:if => :password_required?
def password_required?
hashed_password.blank? || !password.blank?
end
[/code]
这样就是只有 在用户没有密码时 或者 用户输入含有 password 部分 才要求校检密码,OK問題应该完美解决了 :D
validates_length_of :password,:within => 6..40
此时如果想使用如下更新user的元素
@user.update_attributes(:email => params[:user][:email], :im => params[:user][:im])
就会因为密码校检不通过而失敗
在这里 http://www.iteye.com/topic/177000 看到这問題,看到里面的解决方案都不算很好,于是另开一贴记下自己的看法
解决方案就是使用如下来定义user的模型:
[code]
validates_length_of :password,:within => 6..40,:if => :password_required?
def password_required?
hashed_password.blank? || !password.blank?
end
[/code]
这样就是只有 在用户没有密码时 或者 用户输入含有 password 部分 才要求校检密码,OK問題应该完美解决了 :D