美文网首页
2018-07-16达到条件才验证

2018-07-16达到条件才验证

作者: 护念 | 来源:发表于2018-07-16 21:15 被阅读0次

    条件性验证

    可以用if/unless 从而决定在什么时候做验证,

    1、可以接一个符号(方法);也可以接块
    2、还可以接一个符号数组
    3、if/unless还可以搭配使用

    符号写法

    validates :email,presence: true,if: :is_admin?
    
    def is_admin?
      role == 'admin'
    end
    
    接块写法
    validates :email,presence: true, if: lambda {|user| user.role == 'admin'}
    # 这里传了 对象进块哈
    

    接符号数组

    validates :email,presence: true,if: [:is_admin?,:age_conditon?]
    
    def is_admin?
      role == 'admin'
    end
    
    def age_conditon?
      age < 35
    end
    
    if/unless搭配写法
    validates :email,presence: true,if: :is_admin?,
                                                             unless: lambda do |user|
                                                                 user.age >= 35
                                                             end
    

    一个条件 验证多个字段

    rails 提供了with_opitons 方法

    # 当为管理员时,同时验证name 和 hom_page_urls
    with_options if: :is_admin? do |user| # 注意这里要传 对象
       # 写法 object.validates
      user.validates :name,presence: true
      user.validates :home_page_urls, length: {minimum: 6}
    end
    

    相关文章

      网友评论

          本文标题:2018-07-16达到条件才验证

          本文链接:https://www.haomeiwen.com/subject/zvhipftx.html