【问题标题】:custom error field combining 2 error fields in rails自定义错误字段,结合 Rails 中的 2 个错误字段
【发布时间】:2016-07-26 01:01:12
【问题描述】:

在我的信用卡验证表单中,我有两个字段expiry_yearexpiry_month

  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 标签显示为红色,我该怎么做?

以下是视图在 form.html.haml 中的字段外观。

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

【问题讨论】:

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


    【解决方案1】:

    看来你可以这样做:

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

    .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"
    

    【讨论】:

      猜你喜欢
      • 2014-02-27
      • 2013-05-07
      • 2011-10-01
      • 1970-01-01
      • 2018-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多