而不是像can't be blank
这样的简短错误消息,我希望有完整的错误消息,例如Url can't be blank
。我怎么能用simple_form做到这一点? (仅适用于一个字段或一个表单,不适用于所有表单)
答案 0 :(得分:2)
您可以更新错误消息YAML,以便为表单创建自定义错误消息,您正在使用的任何表单gem或根本不使用任何形式的gem。在config / locales / en.yml中查找它。警告:ymls是自动加载的,并且有一整套非显而易见的行为,但YAML设置的形式非常直观。编辑时,不要使用制表符,注意不要在任何地方允许任何额外的空格,否则YAML解析会在运行时失败。
这是我en.yml中activerecord / form-related区域的一个片段:
<强> en.yml 强>
activerecord:
errors:
models:
article:
attributes:
category:
blank: "You must select a category for this post."
author:
blank: "You must enter an author name."
title:
blank: "A title is required."
content:
在同一目录中安装了一个与simple_form,simple_form.en.yml一起安装的YAML文件。我还没有使用过那个,但它可能更直观/更容易使用,但仅适用于simple_form操作。
默认版本 simple_form.en.yml
en:
simple_form:
"yes": 'Yes'
"no": 'No'
required:
text: 'required'
mark: '*'
# You can uncomment the line below if you need to overwrite the whole required html.
# When using html, text and mark won't be used.
# html: '<abbr title="required">*</abbr>'
error_notification:
default_message: "Please review the problems below:"
# Examples
# labels:
# defaults:
# password: 'Password'
# user:
# new:
# email: 'E-mail to sign in.'
# edit:
# email: 'E-mail.'
# hints:
# defaults:
# username: 'User name to sign in.'
# password: 'No special characters, please.'
# include_blanks:
# defaults:
# age: 'Rather not say'
# prompts:
# defaults:
# age: 'Select your age'
这是一个YAML品牌(你需要它):http://www.yamllint.com/
YAML翻译文件是答案,但它是一个笨重的实现和真正的痛苦才能正确。如果您有任何问题,请跟进。
答案 1 :(得分:0)
您可以相应地自定义区域设置文件,也可以在验证部分的模型内定义自定义消息。 Here是解决方案的一些可能性。