simple_form日期字段错误消息

时间:2014-01-16 20:31:54

标签: ruby-on-rails devise 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 个答案:

答案 0 :(得分:1)

这是由带有错误的输入的CSS样式引起的。

你可以通过添加一些CSS来正确设置下拉菜单的样式,但是我认为从根本上说你最好用一个文本字段替换3个下拉框并使用jquery的日期选择器来填充它。

这不仅可以为您的用户提供更好的日期输入体验,还可以解决您的错误布局问题。