我有一个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中指定的消息
我想知道我做错了什么,或者日期字段有什么特别之处。
答案 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