我的rails 2.3.2应用程序中的ActiveMerchant信用卡验证存在问题。(ActiveMerchant 1.4.1)
我完全按照railscast#145剧集编码。
我的问题是,当我使用无效数据验证信用卡时,例如:first_name,:last_name为空,ActiveMerchant未提供验证错误
我在我的脚本/控制台
中尝试了这个credit_card = ActiveMerchant::Billing::CreditCard.new(:number => "",:first_name => "")
credit_card.errors.full_messages #=> []
credit_card.errors #=> {}
我的payment.rb包含
validate_on_create :validate_card
private
def validate_card
unless credit_card.valid?
credit_card.errors.full_messages.each do |message|
errors.add_to_base message
end
end
end
def credit_card
@credit_card = ActiveMerchant::Billing::CreditCard.new(
:number => card_number,
:month => card_expires_on.month,
:year => card_expires_on.year,
:first_name => first_name,
:last_name => last_name,
:verification_value => cvv_number,
:type => card_type
)
end
信用卡错误未添加到我在控制器#create中创建的@payment对象中 请告诉我我错在哪里
答案 0 :(得分:1)
请添加一个||在你的credit_card功能
def credit_card
@credit_card ||= ActiveMerchant::Billing::CreditCard.new(
:number => card_number,
:month => card_expires_on.month,
:year => card_expires_on.year,
:first_name => first_name,
:last_name => last_name,
:verification_value => cvv_number,
:type => card_type
)
end