美文网首页
2018-07-15-1

2018-07-15-1

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

    另类验证helper

    关联模型验证

    class User < ApplicationRecord
      has_many :articles
    end
    
    class Article < ApplicationRecord
      belongs_to :user
      validates_associated :user #这里单复数 和 belongs_to 一致
    end
    
    # 1、创建article 时 会去验证对应的user
    # 2、方向性:在那边写,就是从那边验证触发
    # 3、不要在两边去写
    

    部分字段取出验证

    class User < ApplicationRecord
    
      validates_each :name,:surname do |record,attr,value|
        # 添加错误
        record.errors.add(attr,'不能以小写字母开头') if value =~ /\A[[:lower:]]\z/ 
      end
    
    end
    

    利用其它类做验证

    class DoValidator < ActiveModel::Validator # 自定义验证类 继承自ActiveModel::Validator
      def validate(record)
       # record 可以认为它是对象
        if record[:name] =~ /\Admy+/
         # 这里是向 加入数组 不是等号
          record.errors[:base]  << '名字不能以dmy开头'
        end
      end
    end
    
    class User < ApplicationRecord
      validates_with DoValidator
     # 接 类名 不加(冒号:)
    end
    
    

    相关文章

      网友评论

          本文标题:2018-07-15-1

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