【发布时间】:2011-11-07 23:26:30
【问题描述】:
我已将问题简化为以下内容:f.error_messages 仅显示基础上的第一个错误。要复制,请执行以下操作:
errors.add_to_base "Error 1"
errors.add_to_base "Error 2"
然后在视图上打印消息(即<%= f.error_messages %>),观察只出现“错误1”,而不出现“错误2”!此外,检查errors.full_messages 并观察它确实包含两个错误。它的值为["Error 1", "Error 2"]。
谁能复制这个问题?更重要的是...谁能告诉我如何让f.error_messages 打印所有错误?
谢谢!
更新:实际上,我有 A 类 has_one B 类。我在 B 类的基础上添加,并在 A 类上调用 f.error_messages。看起来如果我执行以下操作,它显示了 B 类错误的完整列表:
<% class_a.fields_for :class_b do |class_b| %>
<%= class_b.object.errors.full_messages.join("<br />") %>
<% end %>
但是,如果我在父级上调用 errors,它不起作用。
<%= class_a.object.errors.full_messages.join("<br />") %>
仅显示 B 类的第一个错误(即“错误 1”)。显然,A 类接受_nested_attributes_for :class_b。
最后,我使用的是 Rails 2.3.11。
【问题讨论】:
标签: ruby-on-rails ruby validation activerecord error-handling