目前我有一个脚本,用于检查以确保测试卡未在生产中提交(因为Authorize.net在实时模式下接受测试信用卡),如果提交了一个,我会在信用卡号中添加一条错误消息在Test_Credit_Cards
数组中是这样的:
TEST_CREDIT_CARDS = ['370000000000002', '6011000000000012', '4007000000027', '4012888818888']
validate :not_a_test_credit_card
def not_a_test_credit_card
self.errors[:cc_number] << "number is invalid!" if TEST_CREDIT_CARDS.include?(cc_number) and Rails.env.production?
end
现在在前端,错误消息如下所示:
Credit card cc number is invalid!
无论如何都要将邮件更改为阅读Credit Card number is invalid!
我只想从邮件中删除cc
部分。
答案 0 :(得分:1)
首先,从错误消息中删除该号码:
self.errors[:cc_number] << "is invalid!" if TEST_CREDIT_CARDS.include?(cc_number) and Rails.env.production?
接下来,在config / locales / en.yml:
中放入cc_number的翻译en:
activerecord:
attributes:
credit_card:
cc_number: "number"
我更喜欢这个答案而不是Anthony Alberto的回答有三个原因:
答案 1 :(得分:0)
应该这样做:
self.errors[:base] << "number is invalid!" if TEST_CREDIT_CARDS.include?(cc_number) and Rails.env.production?
base
指的是整个对象,而不是特定的属性。