Rails Formtastic不显示日期字段的错误消息

时间:2011-09-26 18:05:53

标签: ruby-on-rails datetime formtastic

我有一个Formtastic表格,如:

<%= semantic_form_for @event do |form| %>
  <div class="field">
    <%= form.label :starts_at %><br />
    <%= form.datetime_select :starts_at, :discard_year => true, :minute_step => 30 %>
  </div>
<% end %>

在我的Event.rb中,我有:

  validates_inclusion_of :starts_at, :in => Time.now..(Time.now + 1.year), 
                     :message => "appointment must be between now and one year from now"

似乎验证有效(防止保存无效日期的实例),但错误消息未显示在表单中。我有其他带有验证的字段,它们都显示我在Event.rb中指定的消息

我想知道我做错了什么,或者日期字段有什么特别之处。

1 个答案:

答案 0 :(得分:1)

要查看错误消息,您需要访问错误方法。我在表单中调用了一个辅助方法:

render_form_errors(form)

辅助方法的位置是:


def render_form_errors(form)
  object = form.object

  if object && object.errors.any?
    message = 'Please fix these errors, then try again:'.html_safe
    content_tag :div, message + form.semantic_errors(*object.errors.keys), :class => "form-error ui-state-error ui-corner-all"
  else
    ''
  end