我有一个深度嵌套的模型表单。
当嵌套的模型属性出错时,错误消息显示为:
列表项标识符网址可能不是空白。
这是:
Model_name +属性+本地化文件错误消息
正确的信息应该是:
项目链接网址可能不是空白。
ruby-1.9.2-p290 :014 > ListItem.human_attribute_name("identifier")
=> "Item Link"
除了错误消息中的嵌套模型属性名称之外,本地化工作正常。
看起来它是2.3.4中的bug已修复,但我无法理解。
答案 0 :(得分:1)
不确定这是否是解决此问题的“正确”方法,但这样做会有效。
在您的本地化文件中,您可能会遇到以下情况:
en:
activerecord:
attributes:
list_item:
identifier: Item Link
只要您直接从嵌套模型中解决它,它就会起作用。 Rails验证似乎通过父模型进行,因此您需要以下内容:
en:
activerecord:
attributes:
list_item:
identifier: Item Link
parent_model:
list_item:
identifier: Item Link
对我而言,这似乎打破了DRY原则,因为你必须在嵌套级别重复人类可读的名称,但这应该适合你。
答案 1 :(得分:1)
以下内容对我有用。我有一个课程模型和一个离线课程模型。 OfflineCourse嵌套在课程中。
以下YAML正确地构成了我。希望这有帮助
course:
title: Titolo
subtitle: Sottotitolo
description: Descrizione
abstract: Abstract
audience: A chi è rivolto?
topic: Argomenti
typology: Tipologia
stars: Stelle
course/offline_courses:
start_date: Data inizio
end_date: Data fine
location: Luogo
schedule: Programma
visible: Visibile
city: Città