2011-09-26 64 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插入頁面的方式而被隱藏。 –