我正在使用strongbox为一个有趣的项目加密一些信用卡号(我知道存储这种敏感数据不是一个好主意),但是我无法对其进行验证,我希望能够使用正则表达式来验证模型的加密数据,例如,我有一个特定的正则表达式来验证签证和主卡号,但是在实施此gem时,我无法对其进行验证。
这是我的模型的样子:
class CreditCard < ApplicationRecord
encrypt_with_public_key :card_number, :key_pair => Rails.root.join('config','keypair.pem')
# ASSOCIATIONS
# --------------------------------
belongs_to :wallet
delegate :user, to: :wallet, allow_nil: true
# VALIDATIONS
# --------------------------------
validates :card_number, presence: true
validates_uniqueness_of :card_number
validates_format_of :card_number, with: visa_regex, if: :visa?
end
我试图创建一种替代方法并验证该方法,但无济于事:
class CreditCard < ApplicationRecord
encrypt_with_public_key :card_number, :key_pair => Rails.root.join('config','keypair.pem')
# ASSOCIATIONS
# --------------------------------
belongs_to :wallet
delegate :user, to: :wallet, allow_nil: true
# VALIDATIONS
# --------------------------------
BRANDS = %w(visa mastercard american_express)
validates :card_number, presence: true
validates_uniqueness_of :card_number
validates_format_of :card_number, with: visa_regex, if: :visa?
def decrypted_card_number
card_number.decrypt ENV['ENC_PASS']
end
def has_funds?(amount)
true
end
end