我在模型类中使用Stripe。我有strike_token
属性,我正在验证其存在并创建自定义消息,如下所示:
validates :stripe_token, presence: { message: 'Please enter valid card info' }
当表单提交且无效时,错误消息为," Stripe token请输入有效的卡信息"
我不想在错误消息中使用Stripe令牌。我还有其他适用于默认值的验证,因此我不想更改默认的错误行为。
如果我可以将Stripe标记属性别名为:card_info
,而不将其作为模型上的属性实际使用,那会更好。
因此可以使消息读取,"卡片信息不能为空白"
答案 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!' }
希望有所帮助:)