ruby-on-rails - 扩展一个 apipie-rails 验证器
问题描述
我想扩展NumberValidator
到也验证min
和max
值。如果失败,我仍想调用默认值NumberValidator
并让它返回自己的description
( )。Must be a number
现在,我总是得到自己的实现描述('必须是...之间的数字')
这是我迄今为止所拥有的:
class NumberValidator < Apipie::Validator::BaseValidator
def initialize(param_description, argument, options)
super(param_description)
@number_validator = Apipie::Validator::NumberValidator.new(param_description)
@type = argument
@options = options
end
def validate(value)
return false unless @number_validator.valid?(value)
if (@options[:min]) && (@options[:max])
self.class.validate(value) && value.to_i.between?(@options[:min], @options[:max])
end
true
end
def self.build(param_description, argument, options, block)
if argument == :number
self.new(param_description, argument, options)
end
end
def description
"Must be a number between #{@options[:min]} and #{@options[:max]}."
end
end
解决方案
推荐阅读
- javascript - combineReducers 如何知道要通过哪个 slice REDUX
- c# - 尝试从谷歌存储下载文件时出现异常:“指定的数据无法解密”
- javascript - 错误:root:未找到哈希 md5 的代码。npm 安装出错
- java - spring boot 2.2.3及以上版本的Jackson转换问题
- swift - 使用 collectionView 创建菜单页面
- typescript - 如何正确扩展数组的泛型返回类型
- javascript - 如何为根组件 dom 元素添加样式(角度选择器组件)
- python-3.7 - Python 中的 SQL:如何调试/打印带有变量 (%s) 的 sql 查询
- javascript - 具有两个非常相似的数组的对象,一个显示另一个不显示
- sharepoint - Microsoft Stream 视频嵌入代码在 IE 10、11 中不起作用