2014-01-16 109 views
0

我有表示與simple_form一個錯誤日期字段問題。 我在登記表下面的代碼:simple_form日期字段的錯誤消息

.row 
    .col-md-6.col-md-offset-3 
    %fieldset 
     %h2 Rejestracja 
     %hr.colorgraph/ 
     = simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| 
     = f.error_notification 

     .form-group 
      = f.input :username 
     .form-group 
      = f.label "Birthdate" 
      %br 
      = f.date_select :birth_date, end_year: 1950, start_year: (Time.now.year - 18) 
     .form-group 
      = f.input :email 
     .form-group 
      = f.input :password   
     .form-group 
      = f.input :password_confirmation, :required => false 
     .row.center 
      .col-xs-6.col-sm-6.col-md-6.center 
      = f.button :submit, "Submit", class: "btn btn-lg btn-success btn-block" 

和年齡在我的用戶模型以下驗證:

validate :at_least_18 

def at_least_18 
    if self.birth_date 
     errors.add(:birth_date, 'You must be 18 years or older.') if self.birth_date > 18.years.ago.to_date 
    end 
end 

的問題是,當我提交與有效birth_date形式,simple_form不顯示錯誤,如在其他領域:enter image description here

但是,當我改變

= f.date_select :birth_date, end_year: 1950, start_year: (Time.now.year - 18)

= f.input :birth_date 

這是工作,但現在我有三個醜領域... enter image description here 任何想法?

回答

1

這是由有錯誤輸入的CSS樣式引起的。

你可以通過添加一些CSS來正確設計下拉菜單來解決這個問題,但是我認爲從根本上來說,用單個文本字段替換3個下拉框並使用類似jquery的日期選擇器來填充它更好。

不僅會說給你的用戶提供更好的日期輸入體驗,但你的錯誤佈局問題也將被固定。