【发布时间】:2018-01-08 16:41:45
【问题描述】:
我正在尝试调整 Devise 助手以便仅显示错误消息,而不是字段名称。
这是设计代码的样子:
messages = resource.errors.full_messages.map { |msg| content_tag(:li, msg) }.join
我的问题是它同时显示了字段名称和消息,例如:
电话号码 电话号码丢失
我只想要消息
编辑编辑
我的实际型号电话号码验证如下所示:
validates :phone_number, presence: {message: "Nous avons besoin de votre numéro de téléphone"}
validates :phone_number, format: { with: /\A(?:[+\d].*\d|\d)\z/, message: "le format de votre numéro de téléphone n'est pas reconnu" }
基本上,状态消息是“我们需要您的电话号码”,类似于:
电话号码 Nous avons besoin de votre numéro de téléphone
(我知道我没有使用语言环境,但一旦没问题,我会在 fr.yml 中移动所有内容)
【问题讨论】:
-
您能发布您的型号代码以便我们查看验证吗?
full_messages默认应该是#{field_name} #{message}所以你不应该看到这样的字段的重复。此外,默认情况下,存在检查验证 (validates :phone_number, presence: true) 应该有错误消息can't be blank而不是is missing。 -
嗨@ejdraper 我已经编辑了我的问题。是否无法摆脱
#{field_name}位?或者我应该为phone_number添加一个语言环境以获得正确的翻译并将其作为我的消息的标题 -
好吧,我明白你的意思了。我认为,如果您想要一个完全自定义的消息,其中字段名称在那里但不一定在开头,那么您很可能必须使用自定义消息(如您所说,根据需要进行语言环境翻译),然后使用下面的解决方案仅显示消息 - 任何其他自定义通常假定您希望字段名称在开头。
标签: ruby-on-rails devise ruby-on-rails-5