2010-08-20 4 views
3

J'essaie d'utiliser Formtastic pour créer un formulaire de paiement, car j'aimerais utiliser les erreurs en ligne. J'utilise ActiveMerchant pour gérer la facturation. J'ai la forme suivante:fields_for, formtastic, ActiveMerchant et les erreurs de validation

<%= semantic_form_for @payment do %> 
    <%= form.inputs do %> 
    <%= form.input :email, :label => "Email Address" %> 

    <%= form.semantic_fields_for :credit_card_attributes do |cc| %> 
     <%= cc.input :number, :label => "Credit Card Number" %> 
     <%= cc.input :first_name, :label => "First Name" %> 
     <%= cc.input :last_name, :label => "Last Name" %> 
     <%= cc.input :month, :label => "Expiration Month" %> 
     <%= cc.input :year, :label => "Expiration Year" %> 
     <%= cc.input :verification_value, :label => "Verification Code" %> 
    <% end %> 
    <% end %> 
<% end %> 

Et c'est ce qui est dans mon modèle Payment:

class Payment < ActiveRecord::Base 
    validates_associated :credit_card, :on => :create 

    def credit_card_attributes=(attrs) 
    @credit_card = ActiveMerchant::Billing::CreditCard.new(attrs) 
    end 

    def credit_card 
    @credit_card 
    end 
end 

Lorsque je soumets une carte de crédit valide, il figure que c'est invalide, mais je ne suis pas l'une des erreurs en ligne de formtastic. Je pense qu'il y a probablement quelque chose de simple qui me manque ici, je ne suis pas sûr de quoi.

C'est sur Rails 3.

+0

vous faire st malade besoin d'une réponse à ce sujet? – peresleguine

Répondre

1

Je ne suis pas sûr que ce que vous voulez, mais essayez d'ajouter ce code (prendre de gemme client_side_validations)

ActionView::Base.field_error_proc = Proc.new do |html_tag, instance| 
    unless html_tag =~ /^<label/ 
    %{<div class="field_with_errors">#{html_tag}<label for="#{instance.send(:tag_id)}" class="message">#{instance.error_message.first}</label></div>}.html_safe 
    else 
    %{<div class="field_with_errors">#{html_tag}</div>}.html_safe 
    end 
end 

dans certains initialiseur (par exemple config /initializers/form_errors.rb)

Quant à Formtastic, je n'aime vraiment ce petit bijou (mais c'est une autre histoire)

Questions connexes