我在用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没有像在其他字段中那样显示错误:

但当我改变
= f.date_select :birth_date, end_year: 1950, start_year: (Time.now.year - 18) to
= f.input :birth_date它正在工作,但现在我有三个丑陋的领域..。

有什么想法吗?
发布于 2014-01-16 23:41:04
这是由带有错误的输入的CSS样式造成的。
您可以通过添加一些CSS来正确地设置下拉列表的样式来解决这个问题,但是我认为从根本上说,最好用一个文本字段替换3个下拉框,并使用jquery的日期选择器来填充它。
这不仅会给您的用户提供更好的日期输入体验,而且您的错误布局问题也将得到解决。
https://stackoverflow.com/questions/21172245
复制相似问题