gpt4 book ai didi

ruby-on-rails - 如何验证(和处理)传递给.to_date的值是否有效或返回错误?

转载 作者:行者123 更新时间:2023-12-03 08:13:34 24 4
gpt4 key购买 nike

如果用户插入 to_date 方法不接受的值,例如“有些胡言乱语”,它返回:

“ArgumentError:无效日期”

我该如何构造一个自定义验证,该验证将验证消息返回给用户并且不停止应用程序?

我当时认为重用another answer中的代码是一个好主意,但我不知道如何将其应用于to_date

validate do
self.errors[:start] << "must be a valid date" unless DateTime.parse(self.start) rescue false
end

最佳答案

可以通过抢救来实现,然后将其添加到errors

class Post < ActiveRecord::Base

validate do |post|
begin
Date.parse(post.date)
rescue ArgumentError
errors.add(:date, "must be a valid date")
end
end

## Another way

validate do |post|
# make sure that `date` field in your database is type of `date`
errors.add(:date, "must be a valid date") unless post.date.try(to_date)
end
end

关于ruby-on-rails - 如何验证(和处理)传递给.to_date的值是否有效或返回错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26002414/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com