1

Rails 2.3.2アプリケーションでのActiveMerchantクレジットカードの検証に問題があります。(ActiveMerchant1.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

||を追加してください urcredit_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
于 2012-08-10T10:58:38.127 に答える