Rails:form.error_messages不会在fieldWithErrors div中包装自定义验证字段

时间:2009-11-05 16:51:25

标签: ruby-on-rails validation activerecord

我有一个使用低级validate_on_create方法的模型,基于一个简单的条件我正在向字段添加错误消息,例如

self.errors.add(:expiry_date, "is too soon") if self.expiry_date && self.expiry_date < Date.today + 1.week

在失败保存后渲染视图'new'时,error_messages_for没有像我期望的那样拾取字段。错误显示在错误列表中,表明验证工作正常。

有人知道为什么会这样吗?我猜form.error_messages没有查看对象上的所有错误?

添加了请求的代码:

<% form_for([:solicitor, @policy]) do |form| %>
  <%= form.error_messages :message => "See the list of reasons below to find out why not:", :header_message => "Sorry but we cannot yet create your policy  based on the information you've provided." %>
  <%= render :partial => 'form', :locals => {:form => form} %>
<% end %>

2 个答案:

答案 0 :(得分:4)

你的问题很可能是:

  1. 您没有传递form_for正确的选项。
  2. 您正在重定向回表单而不是呈现。
  3. 您没有使用form_for构建器(即text_field_tag而不是f.text_field)
  4. 但是,如果没有发布完整的控制器/视图,我基本上只是在猜测。

答案 1 :(得分:0)

问题是部分形式的简单拼写错误。我应该发布所有有问题的代码,因为我确信如果我做BJ Clark或其他人会轻易发现我犯的愚蠢错误

经验教训!