更新强大的参数 - 条纹和轨道4

时间:2014-05-14 03:14:12

标签: ruby-on-rails ruby ruby-on-rails-4 stripe-payments strong-parameters

我非常接近使用Rails 4在我的网络应用上实现条带,但我不断收到以下错误:

ActiveModel::ForbiddenAttributesError in PaymentsController#create

该模型在我的Payments Controller中的这一行调出了一个问题:

 params[:payment][:stripe_token] = charge.id
      @payment = Payment.new(params[:payment])

      respond_to do |format|
        if @payment.save

我认为问题与强参数有关,所以我尝试将以下内容添加到付款控制器的底部,但我什么也没得到。

def payment_params
  params.require(:payment).permit(:payment, :stripe_token)
end

关于如何解决这个问题的想法。我使用以下教程来实现条带支付,除了我提交表单时的错误,它似乎有效,因为我的条带测试页显示了费用。

网站链接:synaptian

app的Github:stripe_example

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

应该是这样的

payment_params[:stripe_token] = charge.id
  @payment = Payment.new(payment_params)

  respond_to do |format|
    if @payment.save

您将在控制器中将此方法设为私有

private
 def payment_params
   params.require(:payment).permit(:payment, :stripe_token)
 end

如果您不了解,请参考rails 4强参数教程。你可以用简单的方法做到。别担心。

  

http://blog.sensible.io/2013/08/17/strong-parameters-by-example.html