我想允许日期格式的字符串与干验证宝石,但我不能。
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不过我记得我跑过)请忽略这个问题。