Я реализовал полосу в своем проекте ruby on rails таким образом, чтобы на странице «листинга» (странице, отображающей все предложения) было несколько «предложений» (разных цен, которые вы можете выбрать). Работа в бэкэнде заключается в том, что когда вы платите за предложение, он правильно рассчитывает цену, и нужное количество денег поступает в бэкэнд.
Проблема заключается в том, что когда пользователь выписывает счет, он не показывает стоимость, которую он платит, которая идет на серверную часть. Я считаю, что проблема заключается в том, что по какой-то причине я не могу донести значение до страницы формы. Ниже у меня есть код, как сейчас.
Controllerfile.rb
class ChargesController < ApplicationController
attr_accessor :amount
def self.create
# Amount in cents. This amount will be charged.
@amount = 0
@listing = Listing.find(params[:listing_id])
listing_amount = @listing.amount
@offers = @listing.offers
@offers.each do |offer|
offer_interest = offer.interest
offer_month = offer.months
@amount = (listing_amount * offer_interest * offer_month / 12).to_i
end
end
stripe_form.html.erb Место, где оно отображается для отображения на странице: "data-amount ="
<%= form_tag listing_offer_charges_path(@listing, @listing.offers) do %>
<article>
<% if flash[:error].present? %>
<div id="error_explanation">
<p><%= flash[:error] %></p>
</div>
<% end %>
<label class="amount">
<span>Interest: AU$</span>
<%= @listing.interest_amount %>
</label>
</article>
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-description="Purchase Book"
data-amount="<%=@amount %>"
data-locale="auto"></script>
<% end %>