23

私はactivemerchantを使用していますが、カードを検証するときにこのエラーが発生します。これはRails 3で問題ありませんか?よろしくお願いします

belongs_to :reservation

  attr_accessor :card_number, :card_verification

  validate :validate_card, :on => :create

  def validate_card
    unless credit_card.valid?
      credit_card.errors.full_messages.each do |message|
        errors.add_to_base "error"
      end
    end
  end

    def credit_card
    @credit_card ||= ActiveMerchant::Billing::CreditCard.new(
      :type               => card_type,
      :number             => card_number,
      :verification_value => card_verification,
      :month              => card_expires_on.month,
      :year               => card_expires_on.year,
      :first_name         => first_name,
      :last_name          => last_name
    )
  end

それは指しているUndefined method add_to_base

4

3 に答える 3

87

add_to_baseメソッドはレール3から削除されましたerrors[:base] << "error"。代わりに使用する必要があります。

于 2012-04-23T16:31:57.980 に答える
5

私は、受け入れられた答えよりも、次のことを好みます。

errors.add :base, 'error message'

于 2014-08-26T16:18:27.233 に答える
2

モデルで次のようにします。

:add_to_base=> false

コントローラで次のようにアクセスします。

model_instance.errors.messages
于 2012-07-20T08:48:59.697 に答える