自定义错误字段,在rails中组合2个错误字段

时间:2016-07-26 01:01:12

标签: ruby-on-rails ruby-on-rails-4 haml

在我的表格中,这是一张信用卡验证表单,我有2个字段(progn (defun ...) (defun ...)) expiry_year

expiry_month

但是我希望有一个隐藏的Expiry字段,如果上面的2个字段无效,则在表单中显示为红色。

因此表单看起来像这样,但我需要验证中的Expiry标签是红色的,我该怎么做?

enter image description here 以下是字段在视图的 validates :expiry_month, length: { is: 2, allow_blank: true }, numericality: { only_integer: true, allow_blank: true } validates :expiry_year, length: { is: 4, allow_blank: true }, numericality: { only_integer: true, allow_blank: true } 中的显示方式。

form.html.haml

1 个答案:

答案 0 :(得分:0)

看来你可以这样做:

如果您有错误类,可以检查是否有错误并在视图中显示该类。

.error { color: #9d1d20; }

- if @donation.errors.messages.keys.any? { |k| k.match(/expiry/) }
  = f.label 'Expiry', class: "form-label-expiry error"
- else
  = f.label 'Expiry', class: "form-label-expiry"
  = f.text_field :expiry_month, autocomplete: "off"
  = f.text_field :expiry_year, autocomplete: "off"