标签: dry-validation

如何使用 dry-validation gem 验证日期字符串?

我想允许日期格式的字符串与干验证宝石,但我不能。

class NewUserContract < Dry::Validation::Contract
  params do
    optional(:date).filled(:date)
  end
end
contract = NewUserContract.new

contract.call(date: Date.today)
#=> #<Dry::Validation::Result{:date=>Tue, 14 Jan 2020} errors={}>

# I want to allow date formatted string
contract.call(date: '2020-01-20')
#=> #<Dry::Validation::Result{:date=>"2020-01-20"} errors={:date=>["must be a date"]}>
Run Code Online (Sandbox Code Playgroud)

日期格式的字符串在 0.13 之前是允许的,但从 1.0 开始似乎被禁止。现在我正在尝试升级 Rails 应用程序中的 dry-validation gem。

编辑

我不知道为什么,但上面的代码现在可以工作了。也许缓存问题?(bin/rake tmp:cache:clear不过我记得我跑过)请忽略这个问题。

ruby ruby-on-rails dry-rb dry-validation

4
推荐指数
1
解决办法
2724
查看次数

标签 统计

dry-rb ×1

dry-validation ×1

ruby ×1

ruby-on-rails ×1