Ruby on rails Rails 3.0中的默认验证错误消息在哪里?

Ruby on rails Rails 3.0中的默认验证错误消息在哪里?,ruby-on-rails,validation,ruby-on-rails-3,activemodel,Ruby On Rails,Validation,Ruby On Rails 3,Activemodel,Rails 3.0中的默认验证错误消息在哪里?例如,ActiveRecord::Error.default\u Error\u消息[:take]的等价物是什么?我已经发现ActiveModel处理错误而不是ActiveRecord,但我无法找到错误本身。 及 :D 更新: 也许您应该尝试添加自己的自定义错误消息 # de.yml activerecord: errors: messages: taken: "ist bereits vergeben" # test_s

Rails 3.0中的默认验证错误消息在哪里?例如,ActiveRecord::Error.default\u Error\u消息[:take]的等价物是什么?我已经发现ActiveModel处理错误而不是ActiveRecord,但我无法找到错误本身。

:D

更新:

也许您应该尝试添加自己的自定义错误消息

# de.yml
activerecord:
  errors:
    messages:
      taken: "ist bereits vergeben"

# test_spec.rb
...
assert_equal(object.errors[field], I18n.t("activerecord.errors.messages.taken"))
...

虽然这可能无法完全回答您的问题,但它为您提供了一种自定义验证错误消息的方法(假设您正试图这样做):实际上,我并没有试图自定义它们,只是为了在测试中使用它们,确保发出正确的错误消息。但是,您提供的链接很有用——与早期版本相比,创建自定义消息似乎更复杂,更不直观!谢谢,这是另一个有用的信息。但是如何访问Rails程序中的信息呢?在ActiveModel::Errors或其他地方必须有一个方法,不是吗?您到底想做什么?例如,assert_equal(object.Errors[field],ActiveRecord::Error.default_Error_messages[:take])来测试是否给出了正确的错误消息。这对我来说并不实用,我可以用文字,但这似乎不是一种“纯粹”的做事方式。