2014-01-16 71 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的日期选择器来填充它更好。

不仅会说给你的用户提供更好的日期输入体验,但你的错误布局问题也将被固定。