Ruby on rails 在Rails 3.2+中显示嵌套表单中有错误的字段;单纯形

Ruby on rails 在Rails 3.2+中显示嵌套表单中有错误的字段;单纯形,ruby-on-rails,ruby,validation,twitter-bootstrap,simple-form,Ruby On Rails,Ruby,Validation,Twitter Bootstrap,Simple Form,我有一个飞行模型嵌套在飞行日志模型中。FlightLog可能包含许多航班 我在引导安装中使用SimpleForm,这使得在验证失败时,可以使用error类将带有错误的表单元素包围起来 问题是,即使为嵌套模型触发了验证,也不会标记simple_fields_中存在错误的字段,因此无法确定哪个属性无效 在调用create操作时检查了errors散列之后,我可以看到它正确地填充了顶层的错误以及每个资源中嵌套资源的错误 如何修改simple_form的行为,将errors类添加到每个嵌套模型的控制组中,

我有一个
飞行
模型嵌套在
飞行日志
模型中。
FlightLog
可能包含许多航班

我在引导安装中使用SimpleForm,这使得在验证失败时,可以使用error类将带有错误的表单元素包围起来

问题是,即使为嵌套模型触发了验证,也不会标记simple_fields_中存在错误的字段,因此无法确定哪个属性无效

在调用create操作时检查了errors散列之后,我可以看到它正确地填充了顶层的错误以及每个资源中嵌套资源的错误

如何修改simple_form的行为,将errors类添加到每个嵌套模型的控制组中,以匹配父模型的行为

提前谢谢


如果您使用的是带引导的简单表单,这是可行的-您只需要正确设置一些项目:

1-使用simple_form引导包(来自simple_form 2.0)-您可以在github repo中的
config/initializers/simple_form.rb
()

2-要使嵌套表单显示错误,必须确保提供了对象
f.simple\u fields\u for:nested\u model
不起作用,您需要将
f.simple\u fields\u用于父\u model。nested\u model
f.simple\u fields\u for:nested\u model,parent\u model。nested\u model
以便表单可以获取必要的对象


如果仍然得不到任何信息,请通过在嵌套对象上输出错误数据来验证窗体是否真的得到了您认为它是的对象,并且有错误:
parent\u model.nested\u model.errors.full\u messages.to\u句子

我一直在使用自定义访问器而不是\u id字段,这就是为什么他们在出错时没有得到通知。我最终决定在每个访问器下使用f.error:attr_name,并使用JS手动更改样式

谢谢你的建议,我会尝试一下,让你知道它是如何运行的<代码>父模型。嵌套模型。错误。完整消息。to_句对我不起作用,但
父模型。错误。完整消息。to_句
有效,并显示嵌套模型中的错误。谢谢这是一位伟大的救世主,我对你感激不尽