rails自定义校验

本文介绍了在Rails中如何创建自定义验证器,通过ActiveModel::EachValidator实现针对属性的验证。同时,为了在多个模型中复用校验逻辑,文章还展示了如何创建校验辅助方法,具体步骤是在config/initializers目录下创建extend_validate.rb文件并编写相关代码。
摘要由CSDN通过智能技术生成
当内建的校验 helpers 不能满足项目需求时,可以根据具体需求来编写自己的校验器或者校验方法。

其中,当有比较通用的规则需要校验时,优先考虑使用自定义校验器.

自定义校验器

给需要校验的单独属性添加自定义校验器最便捷的方法是使用 ActiveModel::EachCalidator。这种情况下,自定义校验类必须实现一个 validate_each 方法,它接受三个参数:record,attribute 和 value,它们分别代表model对象实例,被校验的属性和被校验属性的值。

class DateValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    if options[:after]
      unless record[options[:after]] < value
        record.errors[attribute] << options[:after_message]
      end
    end

    if options[:before]
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值