浏览 2925 次
锁定老帖子 主题:更新用户部分字段时跳过密码校验
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-11-03
最后修改:2008-11-19
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的模型: validates_length_of :password,:within => 6..40,:if => :password_required? def password_required? hashed_password.blank? || !password.blank? end 这样就是只有 在用户没有密码时 或者 用户输入含有 password 部分 才要求校检密码,OK問題应该完美解决了 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-11-04
我好像
1. @user.update_attributes(:email => params[:user][:email], :im => params[:user][:im]) 直接这样就可以了哦 |
|
返回顶楼 | |
发表时间:2008-11-04
bugx 写道 我好像
1. @user.update_attributes(:email => params[:user][:email], :im => params[:user][:im]) 直接这样就可以了哦 Realy? http://www.iteye.com/topic/177000 难道这楼楼主RP不好 呵呵,不过我用 @user.update_attributes(params[:user]) 这样肯定不行,所以就使用到了上面的方法。 |
|
返回顶楼 | |
发表时间:2008-11-06
更新单个字段可以用 @user.update_attribute_with_validation_skipping(name,value) 更新多个的话 试试 update_all 吧 |
|
返回顶楼 | |
发表时间:2008-11-06
wosmvp你用的版本是多少?
我记得2.1版本以后有partial update update_attributes可以跳过字段校验 |
|
返回顶楼 | |
发表时间:2008-11-06
Quake Wang 写道 wosmvp你用的版本是多少?
我记得2.1版本以后有partial update update_attributes可以跳过字段校验 我用 Rails2.1.0 开发测试,不可以跳过的 |
|
返回顶楼 | |
发表时间:2008-11-06
Quake Wang 写道 wosmvp你用的版本是多少?
我记得2.1版本以后有partial update update_attributes可以跳过字段校验 partial update为true时,并不能跳过validation吧 只是并发update的时候,能够使一条记录处于invalid状态。 |
|
返回顶楼 | |
发表时间:2008-11-10
validates_length_of :password, :in => 6..20, :allow_nil => true 这样不更好么? |
|
返回顶楼 | |