每个循环没有为每个条目返回正确的金额

时间:2019-05-05 07:56:01

标签: ruby-on-rails ruby

我在带条纹的付款平台上使用红宝石。问题在于要出售物品的页面上,有多个物品,每个物品的付款额不同。现在发生的事情是,循环获取了最后一项的金额,并将该金额提供给页面上的每个项目,而不是每个都有自己唯一的金额。

  <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
          data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
          data-description="Purchase Book"
          new1=<%=
      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%>


          data-amount="<%=@amount %>"

最后的data-amount变量是获取每个项目的值的地方,而上面的代码正是我尝试评估每个项目的@amount的地方。感谢您的任何提前帮助。

1 个答案:

答案 0 :(得分:0)

首先,这是您应该始终将此类代码放置在助手中而不是视图中。每次进入循环时,@ amount的值都会更改,最终金额将是最后一次计算的金额。所以代码实际上是返回

offer = @offers.last
offer_interest = offer.interest
offer_month = offer.months
@amount = (listing_amount * offer_interest * offer_month / 12).to_i

我不确定您要做什么,因为整个代码不可见。

问题1:如果您有多个项目,那么为什么将一个变量初始化为整数/浮点数

问题2:我看不到您在哪里显示商品详细信息?您是否多次使用循环?

question3:为什么new1变量也用一个脚本标签循环来初始化?