带有别名属性名称的表单验证消息

时间:2014-04-18 03:31:03

标签: ruby-on-rails validation

我在模型类中使用Stripe。我有strike_token属性,我正在验证其存在并创建自定义消息,如下所示:

validates :stripe_token, presence: { message: 'Please enter valid card info' }

当表单提交且无效时,错误消息为," Stripe token请输入有效的卡信息"

我不想在错误消息中使用Stripe令牌。我还有其他适用于默认值的验证,因此我不想更改默认的错误行为。

如果我可以将Stripe标记属性别名为:card_info,而不将其作为模型上的属性实际使用,那会更好。

因此可以使消息读取,"卡片信息不能为空白"

1 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

只需从验证中删除:message部分即可。

# config/locales/en.yml
en:
  activerecord:
    attributes:
      model_name:
        stripe_token: ""
    errors:
      models:
        model_name:
          attributes:
            stripe_token:
              blank: "Card info cannot be blank!"

OR

# config/locales/en.yml
en:
  activerecord:
    attributes:
      model_name:
        stripe_token: "Card info"
    errors:
      models:
        model_name:
          attributes:
            stripe_token:
              blank: " cannot be blank!"

用小写字母将model_name替换为您的型号名称。请查看Fully custom validation error message with Rails了解详情。

<强>更新

# config/locales/en.yml
    en:
      activerecord:
        attributes:
          model_name:
            stripe_token: "Card info"

然后使用,

validates :stripe_token, presence: { message: ' cannot be blank!' }

希望有所帮助:)