1

私はactivemerchantでRailscastをたどり、このコードを持っています:

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

fieldWithErrorsしかし、それはフィールドをdivでラップしません。だから私は試しました:

def validate_card
  unless credit_card.valid?
    credit_card.errors.each do |error|
      errors.add error
    end
  end
end

それでもうまくいきませんでした。http://api.rubyonrails.org/classes/ActiveResource/Errors.htmlhttp://activemerchant.rubyforge.org/を読みましたが、正しく読んでいません。

4

2 に答える 2

2

エラーのリストに追加することと、後でエラーを表示することは、2 つの異なることです。

あなたが持っている最初の方法は正しく見えます。これにより、エラーがこのオブジェクトのエラーのリストに追加されます (たとえば、他の検証エラーがある可能性があります)。

次に、error_messages_for()( api ref ) を使用して、そのエラーをビューに出力できます。div と呼びたいものに合わせてカスタマイズできます。

または、@object.errors を自分でループして、独自の出力を行うこともできます。

于 2010-01-01T05:17:27.877 に答える