1

我的 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

信用卡错误未添加到我在控制器中创建的@payment 对象#create 请告诉我我在哪里做错了

4

1 回答 1

1

请添加一个 || 在您的信用卡功能中

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
于 2012-08-10T10:58:38.127 回答