我有一个名为Listing
的模型。它有一个名为application_url
的属性,我正在尝试为其设置自定义错误消息。
class Listing < ApplicationRecord
# ...
validate :application_method_present?
def application_method_present?
# ...
errors.add(:application_url, :invalid)
end
end
到目前为止,错误消息看起来像这样:
@messages=
{
:application_url=>["is invalid"]
}
我想将“无效” 更改为其他内容。为此,我在en.yml
中添加了以下内容:
en:
errors:
models:
listing:
attributes:
application_url:
invalid: "IS ERRORED!"
但这没有效果。重新启动服务器后,我已经在控制台和站点中进行了检查,但是仍显示默认错误消息。
是否有明显的原因为什么未设置我的自定义消息?我应该如何设置自定义消息?
答案 0 :(得分:1)
您可能应该覆盖此消息:https://github.com/rails/rails/blob/master/activemodel/lib/active_model/locale/en.yml
en:
errors:
messages:
invalid: "is invalid"
,但它将覆盖所有invalid
错误。因此,我认为一些自定义翻译会更好:
errors.add(:application_url, I18n.t("errors.application_url.invalid"))
或尝试使用activerecord
键:
en:
activerecord:
errors:
models:
listing:
attributes:
application_url:
invalid: "IS ERRORED!"