json (簡単な例):
{
"person": {
"birthday": "1990-10-10"
},
"achievement": {
"date_appr_r": "2022-05-21"
}
}
私の契約書:
class CreateContract < BaseContract
json do
required(:person).hash do
required(:birthday).value(:date)
end
required(:achievement).hash do
required(:date_appr_r).value(:date)
end
end
rule(person: :birthday).validate(:person_birthday)
rule(achievement: :date_appr_r).validate(:achievement_date_appr_r)
end
date_appr_r が生年月日より前であってはいけないことを確認する必要があります。
質問: 誕生日をachievement_date_appr_r マクロに渡すにはどうすればよいですか?
すべてのドキュメントを読みましたが、何かが欠けていることを願っています
class CreateContract < BaseContract
params do
required(:person).hash do
required(:birthday).value(:date)
end
required(:achievement).hash do
required(:date_appr_r).value(:date)
end
end
rule(:person, :achievement) do
key(:dates).failure(:invalid) if values[:person][:birthday] >= values[:achievement][:date_appr_r]
end
end
そして通話契約
params = { person: { birthday: DateTime.new(2024, 1, 1) }, achievement: { date_appr_r: DateTime.new(2024, 1, 2) } }
validation = CreateContract.new.call(params)