rails 自定义校验及validates_each多校验

一、自定义校验

使用 validate 方法传入一个同名方法的 Symbol 即可。

validate :my_validation

private

def my_validation
    if name =~ /foo/
        errors[:name] << "can not be foo"
    elsif name =~ /bar/
        errors[:name] << "can not be bar"
    elsif name == ‘xxx‘
        errors[:base] << "can not be xxx"
      end
end

在你的校验方法之中,你会使用到 errors 来将错误信息传入,如果这个错误是因为某一个属性造成的,我们就把那个属性当做 errors 的 key,例如本例的 :name。如果原因不特別属于某一个属性,按照惯例 :base。

二、validates_each多校验

使用一个块来确认一或多个属性。为每个属性调用块(如果:allow_nil为true,则跳过是nil的属性)。传递属性的名字,属性的值到被确认的"模型"内。如下面例子显示的,如果一个确认失败,块应该被添加给"模型"的错误列表

class User < ActiveRecord::Base
  validates_each :name, :email do |model, attr, value|
    if value =~ /groucho|harpo|chico/i
      model.errors.add(attr, "You can‘t be serious, #{value}")
    end
  end
end

rails 自定义校验及validates_each多校验

时间: 2024-09-30 17:02:58

rails 自定义校验及validates_each多校验的相关文章

Struts2中使用校验文件对表单的校验以及常用的校验

之前的手动校是在Action中编写validate犯法或validateXXX形式的方法来完成校验的,如果要给予验证框架来完成输入校验,只需在于Action同一目录下创建一个xml格式的验证文件即可.而之前Action中添加validate方法或validateXXX方法就不需要了. Action.java代码 package action; import com.opensymphony.xwork2.ActionSupport; public class check extends Acti

(转)struts2:数据校验,通过XWork校验框架实现(validation.xml)

转载自:http://www.cnblogs.com/nayitian/p/3475661.html struts2:数据校验,通过XWork校验框架实现(validation.xml) 根据输入校验的处理场所的不同,可以将输入校验分为客户端校验和服务器端校验两种.服务器端验证目前有两种方式: 第一种: 参考:struts2:数据校验,通过Action中的validate()方法实现校验,图解 第二种: 使用validate()方法校验时,如果Web应用中存在大量Action就需要多次重写val

SpringMVC 数据校验。(后台校验 hibernate validate).

1. 数据校验.(后台校验 hibernate validate). 引入jar包. 在相应的实体类中加入注解. 1 package com.zhiyou100.wc.bean; 2 3 import javax.validation.constraints.Pattern; 4 5 import org.hibernate.validator.constraints.Length; 6 import org.hibernate.validator.constraints.NotEmpty; 7

问答项目---账号密码异步校验后进行PHP校验

在做登陆的时候,通过异步校验后还需要通过PHP来校验账号和密码的正确性. PHP校验账号密码: public function login(){ if(!IS_POST){echo "页面不存在"; $this->redirect('index'); die();}; $username = I('post.username'); $pwd = I('post.password','','md5'); $code = I('post.code'); $obj = new \Thi

用异提交时,后台通过校验规则文件,校验不通过时,跳转到INPUT视图时,前台显示错误信息的解决办法

1.第一种: 最近项目使用了struts2的校验(其实我觉得后台校验,特别是struts的校验,完全可以放在其他地方处理,比如交给js或者业务逻辑),而且系统刚好还使用了extjs,此时问题出现了:假如提交数据后,struts校验没有通过,那么struts会自动返回input,而extjs提交数据方式都是ajax,根本就不理会struts 的返回值,然后系统就会报错,页面也不可能显示校验失败的相关信息, 针对此种情况,一种处理方式是在struts.xml中增加input结果集,重定向到另一个ac

身份证校验,前台js校验,后台java校验

js校验: var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古", 21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏", 33:"浙江",34:"安徽",35:"福建"

Struts2的输入校验(1)——校验规则文件的编写

Struts2的输入校验(1) --校验规则文件的编写 Struts2提供了基于验证框架的输入校验,所有的输入校验只要编写配置文件,Struts2的验证框架将会负责进行服务器校验和客户端校验. 注: 客户端校验:过滤正常用户的误操作,使用JavaScript代码完成: 服务器端校验:组织非法数据的输入,是整个应用的最后防线,在应用中通过编程的方式实现. 使用Struts2的校验框架进行校验时,无须对程序的代码进行改变,只需要编写校验规则文件即可,校验规则文件制定每个表单域应该满足怎样的输入规则.

Struts2输入校验之validate输入校验方式

一.在Web系统项目中有大量的视图页面需要用户自行输入很多数据.这些数据的类型有很多种.为了防止某些客户的恶意输入以及对Web项目的恶意破坏,必须引入输入校验,像Windows操作系统的防火墙一样把一些垃圾数据过滤掉,挡在Web系统之外.接下来就来介绍一下validate输入校验方式: 1.validate方法进行输入校验:这里直接附上一个简单的用户注册功能具体介绍利用validate方法对数字.字符串.日期等类型数据进行输入校验方式介绍: (1).首先,新建一个Struts2项目InputVa

JavaEE----使用Struts2的输入校验之手动编码校验

Struts.xml <action name="login" class="com.cug.demo04.LoginAction"> <result>/demo04/success.jsp</result> <result name="input">/demo04/login.jsp</result> </action> <action name="logi