我有一个request
模特。当我request
从拥有的表单创建新表单时,如果“请求”模型中的某一项为true,那么我想将用户发送到收费页面。然后,我想从中获取字段之一request
来设置费用金额。我正在通过控制器执行此操作,但是charge
并没有拾取request
对象以从中获取金额。这是我的request
控制器。
def create
@user = current_user
if @request = @user.request.create!(authorization_params)
if @request.must_pay == true
redirect_to new_users_charge_path(@request), :notice => "Please make payment before proceeding"
else
redirect_to users_dashboard_path, :notice => "Success"
end
else
redirect_to users_dashboard_path, :error => "Oops!"
end
def authorization_params
params.require(:request).permit( :field_1, :field_2, etc...)
end
因此,当将其传递request
到新的收费路径时,我想从中获取要支付的金额,request
因此我的收费控制器如下所示。
def create
# Amount in cents
@request = Request.find(params[:id])
@user = current_user
@amount = @request.how_much_to_pay
customer = Stripe::Customer.create(
:email => @user.email,
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount,
但我不断收到错误 undefined method `how_much_to_pay' for nil:NilClass
因此,我认为它不会将请求传递给充电控制器。我想念什么?
这是创建的费用表。
<%= form_tag users_charges_path do %>
<article>
<label class="amount">
<span>Amount: <%= number_to_currency (@request.how_much_to_pay.to_i/100) %></span>
</label>
</article>
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-description="..."
data-amount="<%= @request.how_much_to_pay %>"
data-locale="auto"></script>
<% end %>
@request为零,因此Request.find(params [:id])找不到任何东西。因此,它没有在参数中找到ID以查找请求。
对于您要做什么我还不太清楚。我不明白为什么您不只是使用模型方法来创建客户和收费。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句