验证机制

阅读更多
ruby 代码
  1. #有效性的验证,通过调用activerecord中的validate method实现   
  2.   
  3. #非空字段   
  4. validates_presence_of :fieldname,:others  
  5.   
  6. #字段长度   
  7. validates_length_of :fieldname,:within=>1..10   
  8.   
  9. #类型   
  10. validates_numericality_of :fieldname  
  11.   
  12. #唯一性   
  13. validates_uniqueness_of :fieldname  
  14.   
  15. #自定义校验   
  16. #重写protected validate方法,该方法会在save之前被rails自动调用。eg.   
  17. protected def valiedate        
  18.      errors.add(:fieldname,"notice infomation"if condition   
  19.     end  
  20.   
  21. #自定义message   
  22. validates_xxxx_of :name:message=>'请输入用户名'   
  23.   
  24. #复杂格式校验,通过正则表达式匹配   
  25. validates_format_of :fieldname,:with => pattern,:message => "notice infomation"  
  26.   
  27. #跨model验证   
  28. #Model   
  29. class User 
  30.     has_one :user_data  
  31.     validates_presence_of :name , :email  
  32.     validates_associated :user_data  
  33. end  
  34. class UserData < ActiveRecord::Base   
  35.     belongs_to :user  
  36.     validates_presence_of :sex  
  37. end  
  38. #View   
  39.   

  40. for="user_email">Email
  41. <%= text_field 'user', 'email'  %>   
  42. <%= @user.user_data.errors['sex'] if @user.user_data %>   
  43.   

你可能感兴趣的:(ActiveRecord,正则表达式,Rails,Ruby)