2011-09-26 84 views
0

我有一个Formtastic格式如:Rails的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

要查看错误消息,您需要访问错误方法。我所说的窗体中一个辅助方法:

render_form_errors(form)

凡helper方法是:


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 
+0

感谢理查德。我很好奇为什么其他错误被Formtastic正确处理。 – AdamNYC

+0

刚才我发现,如果您使用的是formtastic 2,它会使用HTML5属性来停止正在保存的表单。在某些情况下(对于我来说,它是使用CK编辑器的所见即所得的字段)HTML5消息由于EDitor插入页面的方式而被隐藏。 –