对于 API,我想返回实际的键控字符串。
所以:
User.errors.messages[:name]
#=> activerecord.errors.models.user.attrributes.blank
代替
Can't be blank
我知道我可以通过创建实际翻译或validates
在模型中的方法中设置自定义错误来覆盖它,但我想知道是否有更低级别、更简单的方法来让 rails 返回“keyified”字符串而不是解析它通过翻译层。
对于 API,我想返回实际的键控字符串。
所以:
User.errors.messages[:name]
#=> activerecord.errors.models.user.attrributes.blank
代替
Can't be blank
我知道我可以通过创建实际翻译或validates
在模型中的方法中设置自定义错误来覆盖它,但我想知道是否有更低级别、更简单的方法来让 rails 返回“keyified”字符串而不是解析它通过翻译层。
我在 SO 上回答了一些类似的问题,但现在找不到它们......
我认为现在这是不可能的,因为ActiveModel::Errors::add方法不将密钥存储到消息中,而只是存储派生消息。
从翻译文件等中反向获取密钥也并非易事。
我认为实际存储错误消息的密钥而不仅仅是消息本身,这将是对 rails 的一个有价值的补充。