如何更改 Rails 中无效日期的内置默认 date_select 通知消息?

How to change built-in default date_select notice message for invalid date in Rails?

我在 Rails 中使用 date_select 方法处理我的表单。

每当我选择无效日期(例如 2 月 30 日或 4 月 31 日)时,我都会收到一条默认通知消息,说明“无效日期”,我认为这是内置的。

我如何将其更改为诸如“您输入的日期无效”之类的自定义内容。 ?

我希望此消息与我的应用其余部分中的大小写和标点符号保持一致。

Rails 每当转换时间失败时(扩展时区和时间计算)

都会引发带有核心消息 'invalid date' 的 ArgumentError

但在你的情况下,我们不需要拦截或覆盖 models/controllers 中的任何代码,只需使用辅助方法在它们之前转换 'invalid date' 消息(或任何你想要的消息)被渲染了,对吧?

# helper
def format_error(error)
 return ArgumentError.new(I18n.t 'date.invalid') if error.class == ArgumentError && error.message == 'invalid date'

 error
end

# view
<% interval.errors.full_messages.each do |message| %>
   <li><%= format_error(message) %></li>
<% end %>

顺便问一下,您使用的 Rails 是什么版本?我使用 Rails 6 每当我选择错误的日期时,它会自动转换为下一个有效日期,例如:我选择 31/4 -> 然后它会被保存为 1/5.