如何使用simple_form显示完整的错误消息?

时间:2015-03-10 14:30:45

标签: ruby-on-rails ruby-on-rails-4 twitter-bootstrap-3 simple-form

而不是像can't be blank这样的简短错误消息,我希望有完整的错误消息,例如Url can't be blank。我怎么能用simple_form做到这一点? (仅适用于一个字段或一个表单,不适用于所有表单)

2 个答案:

答案 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是解决方案的一些可能性。