Dry-Validation - неявное преобразование Float в String по правилам
Я пытаюсь проверить значение ключа в моей схеме.
Но я получаю no implicit conversion of Float into String
потому что значение является плавающим, и я использую регулярное выражение для проверки формата.
VALIDATION_PARAMETERS = Dry::Validation.Schema(ApplicationSchema) do
required(:uid, :string).filled
required(:value).filled
rule(insulating_surface: [:uid, :value]) do |uid, value|
uid.eql?('insulating_surface').then(value.format?(FLOAT_FORMAT))
end
end
Я также пытался конвертировать Float в String, но он возвращает undefined method format?' for #<String:0x0000557d8877a910>
rule(insulating_surface: [:uid, :value]) do |uid, value|
uid.eql?('insulating_surface').then(value.to_s.format?(FLOAT_FORMAT))
end
1 ответ
Я не очень знаком с сухой проверкой, но вижу много документированных встроенных предикатов, включая float?
один. Попробуйте следующее:
rule(insulating_surface: [:uid, :value]) do |uid, value|
uid.eql?('insulating_surface') > value.float?
end