Итак, я реализую скрипт «checkout.js» для оплаты «бронирования». У меня есть следующий в бронировании/show.html.erbStripe - Передача параметра «Сумма» из другой таблицы
<center>
<b>Address:</b>
<%= @booking.address %>
</p>
<p>
<b>Catering:</b>
<%= @booking.catering.foodtype %>
<b>$</b>
<%= @booking.catering.cost %>
</p>
<p>
<b>Customer:</b>
<%= @booking.customer.name %>
</p>
<p>
<b>Eventtype:</b>
<%= @booking.eventtype %>
</p>
<p>
<b>Finishdatetime:</b>
<%= @booking.finishdatetime %>
</p>
<p>
<b>Marquee:</b>
<%= @booking.marquee.name%>
<b>$</b>
<%= @booking.marquee.cost%>
</p>
<p>
<b>Musician:</b>
<%= @booking.musician.name %>
<b>$</b>
<%= @booking.musician.cost %>
</p>
<p>
<b>Size:</b>
<%= @booking.size %>
</p>
<p>
<b>Startdatetime:</b>
<%= @booking.startdatetime %>
</p>
<p>
<b>Toilet:</b>
<%= @booking.toilet.name %>
<b>$</b>
<%= @booking.toilet.cost %>
</p>
<p>
<b>TOTAL COST:</b>
<%= @totalcost = @booking.toilet.cost + @booking.musician.cost + @booking.catering.cost + @booking.marquee.cost %>
</p>
<p>
<a href="#" onclick="window.print();return false;">Print this invoice</a>
</p>
<a href="http://localhost:3000/charges/new">Pay</a>
</center>
Однако в моем контроллере зарядов, сумма закодирована в метод создания, например, так
class ChargesController < ApplicationController
def new
end
def create
# Amount in cents
@amount = 500
customer = Stripe::Customer.create(
:email => params[:email],
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount,
:description => 'Rails Stripe customer',
:currency => 'eur'
)
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to charges_path
end
end
Я хочу, чтобы это так что, когда я нажимаю «Оплатить» в нижней части моего шоу, он подводит меня к сбору/новой странице, где сумма передается. Я не уверен, как это сделать, поскольку метод создания сборов не будет знать, для какого экземпляра заказа взять параметры, потому что это просто прямая ссылка href на плату/новую страницу.
Возможно, это довольно сложно, но если кто-то может направить меня в правильном направлении, это было бы здорово!
Вы можете пройти бронирования _id в качестве параметра запроса, как ' "HTTP: // локальный: 3000/сборы/новый booking_id = # {@ booking.id}"' а затем передать его в пост параметров create method –
@PramodShinde Кажется, что это сработает. Не могли бы вы поместить его в свои «соответствующие классы»? –