如果在User 模型中有定义:
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問題应该完美解决了
分享到:
- 2008-11-03 20:57
- 浏览 1703
- 评论(7)
- 论坛回复 / 浏览 (7 / 2891)
- 查看更多
相关推荐
jsp字段校验与非字段校验,利用XML实现校验,利用struts2架构
字段校验规范.doc 规则
.net实体类字段校验,通过Attribute属性自定义校验、及错误信息。可校验字段长度,字段类型通过校验函数校验,统一校验 [TypeCheck(Name = "", Message = "请选择开始时间", Validate = ValidateUtils._DateTime)] ...
通过注解+反射实现自定义验证 工具,可扩展业务校验,一个字段可进行多种校验,如:字段A需要大于字段B并且字段B需要大于字段C并且.....XXX。附使用文档以及源码
WEB前端校验插件,提供表单字段的配置式校验功能
Mybatis框架下,数据库更新操作时只更新set过的字段,原1.0版本由于CSDN不支持修改已经删除了。
改字段还原SYBASE数据库密码,找回丢失的anywhere 的密码
validate()可以指定校验范围内,或者是全局的 字段。而validateAll()只能校验全局。这篇文章主要介绍了vue+VeeValidate 校验范围(部分校验,全部校验) ,需要的朋友可以参考下
SQL 2008 更新XML类型字段的方法
Hibernate更新某些字段
EasyExcel 并发读取文件字段并进行校验,数据写入到新文件,批量插入数据到数据库 demo
电信计费 字段校验 时长计算 被叫信息分析 话单事件分析 话单排重 排序输出
基于Java的Json描述器,解决项目当中字段多,且多个字段需要进行判定以及校验的问题
使用MD5编码实现数据库用户密码字段的加密 使用MD5编码实现数据库用户密码字段的加密 使用MD5编码实现数据库用户密码字段的加密
我的导入校验项目;excel导入时对字段进行复杂校验,然后存储到表,存储导出结果
CRC码是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定
sql 在更新某字段后写入日志触发器 sql某字段更新后,触发该sql语句的sql触发器 类似于记入日志
1、循环校验码(CRC码):是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。 2、生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’...
Spring Boot技术知识点:如何使用@Validated注解来对邮箱字段进行数据校验
对MSSQL数据库的密码字段进行加密解密,自己玩的,两个函数好像微软的官方没有给出来。