Ruby on rails 条带-传入参数";“金额”;从另一张桌子

Ruby on rails 条带-传入参数";“金额”;从另一张桌子,ruby-on-rails,ruby,stripe-payments,params,Ruby On Rails,Ruby,Stripe Payments,Params,因此,我正在实现checkout.js条带脚本来支付“预订”费用。我在booking/show.html.erb中有以下内容 <center> <b>Address:</b> <%= @booking.address %> </p> <p> <b>Catering:</b> <%= @booking.catering.foodtype %> <b>$&

因此,我正在实现checkout.js条带脚本来支付“预订”费用。我在booking/show.html.erb中有以下内容

  <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>

地址:

餐饮: $

客户:

事件类型:

Finishdatetime:

字幕: $

音乐家: $

尺寸:

开始日期:

厕所: $

总成本:

然而,在我的费用控制器中,金额硬编码到create方法中,如下所示

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
class ChargesControllerparams[:email],
:card=>params[:stripeToken]
)
charge=Stripe::charge.create(
:customer=>customer.id,
:amount=>@amount,
:description=>“Rails条带客户”,
:货币=>“欧元”
)
救援条带::CardError=>e
闪光[:错误]=e.message
将\u重定向到\u路径
结束
结束
我想拥有它,这样当我点击我的节目底部的“支付”时,它会将我带到费用/新页面,在那里金额会被传递。我不知道该怎么做,因为chargescreate方法不知道从哪个预订实例获取参数,因为它只是指向charges/new页面的直接href链接


这可能很复杂,但如果有人能把我引向正确的方向,那就太好了

您可以使用AJAX请求调用
create
控制器,请求的数量在参数中。 然后在控制器中,您可以执行以下操作,例如:

@amount = params['amount']
您应该查看条纹指南,其中说明了所有内容:

还有,有很多方法可以做到这一点,我建议你一个可能不是更好的解决方案


干杯,

您可以将预订id作为查询参数传递,如
“http://localhost:3000/charges/new?booking_id=#{@booking.id}“
然后在post参数中传递它以创建method@PramodShinde这似乎是可行的。你能把它放到它各自的类中吗?我建议你在这里使用嵌套模型:
http://localhost:3000/bookings/{booking.id}/charges/new
这可能是个坏主意。用户可以更改url并更改收费金额。@Pramod Shinde的评论是正确的选择