Rails:获取验证错误密钥而不是i18n字符串

时间:2014-08-05 13:24:47

标签: ruby-on-rails api devise

我正在开发一个Ruby on Rails 4.1.0应用程序,该应用程序具有用于移动客户端的API和用于其他类型用户的后端。 API允许移动客户端注册用户,但我可能无法获得正确的数据,因此在这种情况下,我需要告诉移动客户端错误在哪里。我使用设计3.2.4进行用户管理。所以,现在,如果移动用户想要注册并验证失败,那么这就是我返回移动客户端的JSON:

{"errors": [
  "email": ["is not valid"]
]}

由于移动应用程序将是多语言,应用程序开发人员要求我使用密钥而不是句子返回所有错误,因此我应该返回类似的内容:

{"errors": [
  "email": ["invalid"]
]}

但我无法轻易找到方法。当我运行user.valid?时,user.errors对象充满了验证错误的i18n转换,因此我无法获取其密钥。

我尝试创建一个i18n后端(继承自I18n::Backend::Simple并覆盖translate方法),但我遇到了default选项无法解决的问题希望在发送设计确认电子邮件时处理,或重置密码说明电子邮件。

所以,我想知道我的记录无效的原因,但没有i18n字符串,只有密钥。关于如何获得它的任何想法?

谢谢!

0 个答案:

没有答案