ruby 代码
- #有效性的验证,通过调用activerecord中的validate method实现
- #非空字段
- validates_presence_of :fieldname,:others
- #字段长度
- validates_length_of :fieldname,:within=>1..10
- #类型
- validates_numericality_of :fieldname
- #唯一性
- validates_uniqueness_of :fieldname
- #自定义校验
- #重写protected validate方法,该方法会在save之前被rails自动调用。eg.
- protected def valiedate
- errors.add(:fieldname,"notice infomation") if condition
- end
- #自定义message
- validates_xxxx_of :name, :message=>'请输入用户名'
- #复杂格式校验,通过正则表达式匹配
- validates_format_of :fieldname,:with => pattern,:message => "notice infomation"
- #跨model验证
- #Model
- class User <ActiveRecord::Base
- has_one :user_data
- validates_presence_of :name , :email
- validates_associated :user_data
- end
- class UserData < ActiveRecord::Base
- belongs_to :user
- validates_presence_of :sex
- end
- #View
- <p>
- <label for="user_email">Email<label><br/>
- <%= text_field 'user', 'email' %>
- <%= @user.user_data.errors['sex'] if @user.user_data %>
- <p>