0

我正在尝试在我的模式中验证键的值。

但是我得到了一个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
4

1 回答 1

1

我对干式验证不是很熟悉,但我看到很多内置的谓词记录在案,包括float?一个。请尝试以下操作:

rule(insulating_surface: [:uid, :value]) do |uid, value|
  uid.eql?('insulating_surface') > value.float?
end
于 2019-05-24T12:52:00.623 回答