You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ruby on Rails中本地化深度嵌套属性的验证错误信息?

解决Rails深度嵌套模型附件验证本地化问题

问题根源

你的本地化文件结构错误,CargoItemDocument模型的upload属性应该直接定义在该模型的属性节点下,而非嵌套在cargo_item的属性里。Rails解析嵌套模型的属性本地化时,会直接查找对应模型的属性定义,不会通过父模型的关联节点去读取。

修正后的德语本地化文件

de:
  activerecord:
    # 可选:模型名称本地化(修正错误提示里的模型名显示)
    models:
      booking: "Buchung"
      cargo_item: "Ladungsposition"
      cargo_item_document: "Ladungspositionsdokument"
    attributes:
      booking:
        number: "Nummer"
        date: "Datum"
      cargo_item:
        title: "Titel"
        weight: "Gewicht"
        # 可选:关联名称本地化(修正错误提示里的关联名显示)
        cargo_item_documents: "Ladungspositionsdokumente"
      # 将upload属性移到对应模型的节点下
      cargo_item_document:
        upload: "Datei"

额外优化(可选)

如果希望错误提示中的关联和模型名称也显示德语(比如把"Cargo items"改成"Ladungspositionen"),可以补充上述models和关联属性的本地化定义。修正后错误提示会变为:

Ladungspositionen Ladungspositionsdokumente Datei hat einen ungültigen Dateityp

验证修改

  1. 重启Rails服务器,确保本地化文件生效
  2. 上传无效文件类型,检查错误提示是否已正确显示德语

内容的提问来源于stack exchange,提问作者Tintin81

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 20:12:20