数据量访问在费用控制器中创建的值时遇到麻烦

时间:2019-05-04 05:07:13

标签: ruby-on-rails ruby

我已经在我的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 %>

1 个答案:

答案 0 :(得分:0)

您的应用程序流程并不十分清楚,但是由于您位于stripe_form.html.erb上,我认为控制器和视图之间必须有一个中间步骤。如果您在某处使用redirect_to,则可能在获取视图时@amount为空。 @listing和@listing提供的值有效吗?