2016-05-19 7 views
0

Ich kann den Fehler nicht verstehen. Wie erhalte ich die stripe_checkout Aktion, um die spezifische AddOn.find(1).price zu erhalten?Rails Stripe Checkout-Fehler - Konnte AddOn mit 'ID' nicht finden =

add_ons_controller.rb:

def stripe_checkout 
    @add_on = AddOn.find(params[:id]) 
    @amount = @add_on.price 
    charge = Stripe::Charge.create(
        :amount => @amount * 100, 
        :currency => "usd", 
        :source => params[:stripeToken], 
        :description => "Test Charge" 
    ) 
    flash[:notice] = "Successfully created a charge" 
    redirect_to '/add_ons' 
    end 

add_ons/index.html.erb:

<% @add_ons.each do |add_on| %> 
<%= add_on.title %> 
<%= add_on.category %> 
<%= add_on.description %> 
<%= form_tag('/stripe_checkout',{method: :post}) do %> 
<script class="stripe-button" data-amount="<%= add_on.price * 100 %>" data-currency="USD" data-email="[email protected]" data-key="<%= Rails.configuration.stripe[:publishable_key] %>" src="https://checkout.stripe.com/checkout.js"></script> 
<% end %> 
<% end %> 
+0

Was sind die Parameter, die von der Aktion empfangen werden? – lcguida

+0

Entschuldigung, aber ich verstehe nicht, was Sie meinen, wenn Parameter von der Aktion empfangen werden. – RailsNewbie

+0

add_on_params def params.require (: add_on) .permit (Titel,: Beschreibung,: Leistung, Kategorien,: Preis,: completed_on) Ende – RailsNewbie

Antwort

1

Sie keine id zum form_tag Helfer übergeben hat:

<% @add_ons.each do |add_on| %> 
    # some code here 
    <%= form_tag('/stripe_checkout',{method: :post}) do %> 
    <%= hidden_field_tag :id, add_on.id %> 
    <script class="stripe-button" data-amount="<%= add_on.price * 100 %>" data-currency="USD" data-email="[email protected]" data-key="<%= Rails.configuration.stripe[:publishable_key] %>" src="https://checkout.stripe.com/checkout.js"> </script> 
    <% end %> 
<% end %> 
+0

Jetzt habe ich diesen Fehler statt .. konnte nicht AddOn finden mit 'id' = {: wert => 1} – RailsNewbie

+0

Schau meine aktualisierte Antwort. –

+0

es funktioniert. Vielen Dank :) – RailsNewbie

Verwandte Themen