【问题标题】:How to access Rails's 'can't be blank' error message?如何访问 Rails 的“不能为空白”错误消息?
【发布时间】:2011-12-06 05:19:51
【问题描述】:

当验证 :presence => true 失败时访问 Rails 的默认 can't be blank 错误消息的 API 是什么?

我有这样的模型设置:

class TextDocument < Document
  validate :content_not_blank   # 'content' is an attribute

  private
    def content_not_blank
      if content.blank? 
        errors.add(:content, ....?) # I want to access 'can't be blank'
      end
    end
end

【问题讨论】:

    标签: ruby-on-rails internationalization


    【解决方案1】:

    I18n.t('errors.messages.blank')

    应该给你你想要的。

    【讨论】:

    • 我们如何翻译这些默认消息。我的意思是有很多默认消息,我想为它们创建 ex ru.yml
    【解决方案2】:

    假设您使用的是标准 yaml 翻译,您可以在 ActiveModel 中找到该文件

    要覆盖它,您可以在 config/locales 文件夹中放置一个文件,例如:

    en:
      errors:
        messages:
          blank: "can't be whatever your custom message"
    

    【讨论】:

      【解决方案3】:

      你可以像这样使用默认方法:

      validates_presence_of(:content)
      

      这将在当前本地(如果您设置 config/locales/ ..yml 文件)中生成正确的消息(不能为空白)

      如果你真的想编写自己的验证器

      errors.add(:content, I18n.translate(:blank))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-07
        • 2012-01-03
        • 2022-01-13
        • 1970-01-01
        • 1970-01-01
        • 2012-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多