2016-07-26 60 views
0

在我的表單中,這是一個信用卡驗證表單,我有兩個字段expiry_yearexpiry_month自定義錯誤字段在軌道中結合了2個錯誤字段

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 } 

但是,如果上面的2個字段無效,我想要在窗體中顯示爲紅色的隱藏的Expiry字段。

所以表單看起來像這樣,但我需要Expiry標籤在驗證中是紅色的,我該怎麼做?

enter image description here 以下是字段在form.html.haml中查看視圖的方式。

= f.label 'Expiry' 
= f.text_field :expiry_month, placeholder: 'MM', maxlength: 2 
= f.text_field :expiry_year, placeholder: 'YYYY', maxlength: 4 

回答

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"