Rails - 自定义模型验证错误消息但没有数据库

时间:2013-08-12 17:07:40

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个模型验证表单,但它不从ActiveRecord继承....它没有数据库

我正在验证模型中的某些字段,但我想要自定义验证消息.....过去我已经进入了

en.yml 

 en:
   activerecord:
     models: 
       mymodel: "CHANGE TO SOMETHING ELSE"

并且可以轻松地将其更改为我想要的任何内容但它不适用于此模型....我认为它因为它不是从ActiveRecord继承而来......

如何自定义验证错误?

2 个答案:

答案 0 :(得分:3)

尝试包含以下翻译:

包括ActiveModel :: Translation

编辑:

如果你的模型有一个电子邮件属性并且空白验证没有通过,你可以格式化你的语言环境

区域设置:

en:
  activemodel:
    attributes:
      mymodel:
        email: "foo"
    errors:
      models:
        mymodel:
          blank: "bar"

以下是您可以添加区域设置的其他错误 https://github.com/rails/rails/blob/3-2-stable/activemodel/lib/active_model/locale/en.yml

答案 1 :(得分:0)

您希望使用ActiveModel支持进行验证,如Rails 3中所添加。

class MyModel
  include ActiveModel::Validations

  attr_accessor :name

  validates :name, presence: true

  def initialize(attributes = {})
    attributes.each do |name, value|
      send("#{name}=", value)
    end
  end

end

请参阅以下参考资料:

第一个链接甚至包括使用i18n文件来表示错误,正如您所引用的那样。