当前位置:  开发笔记 > 编程语言 > 正文

如何使用ActiveRecord模型的参数编写自定义验证方法?

如何解决《如何使用ActiveRecord模型的参数编写自定义验证方法?》经验,为你挑选了1个好方法。

在我的模型中,我有:

validate :my_custom_validation

def my_custom_validation
 errors.add_to_base("error message") if condition.exists?
end

我想在mycustomer vaildation中添加一些参数,如下所示:

validate :my_custom_validation, :parameter1 => x, :parameter2 => y

如何编写mycustomvalidation函数来计算参数?



1> paradoja..:

验证器通常有一个数组参数,首先指示要验证的字段,最后指示(如果存在)带有选项的散列.在你的例子中:

:my_custom_validation, parameter1: x, parameter2: y

:my_custom_validation将是一个字段名称,而parameter1:x,parameter2:y将是一个哈希:

{ parameter1: x, parameter2: y}

因此,你会做类似的事情:

def my_custom_validation(*attr)
    options = attr.pop if attr.last.is_a? Hash
    # do something with options
    errors.add_to_base("error message") if condition.exists?

end

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有