【发布时间】:2014-05-14 12:09:54
【问题描述】:
我已经非常接近使用 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
应用的Github:stripe_example
任何帮助将不胜感激。
【问题讨论】:
-
您能否在导致付款控制器出现问题的行之前写下方法描述 payment_params,例如:payment_params 然后 params[:payment][:stripe_token] = charge.id .. .
-
我之前按照您的建议添加了它,当我使用 params.require(:payment).permit(:payment, :stripe_token) params[:payment][:stripe_token] 时仍然遇到相同的错误= charge.id @payment = Payment.new(params[:payment])
-
当您在“payment_params”中定义参数时,您应该使用 payment_params[:stripe_token]。它将通过此方法自动访问您的字段。并将其设为私有。
-
这样写:@payment = Payment.new(params)
-
以下代码仍在产生错误。仍然不确定我在做什么错 params.require(:payment).permit(:payment, :stripe_token) params[:payment][:stripe_token] = charge.id @payment = Payment.new(params)
标签: ruby-on-rails ruby ruby-on-rails-4 stripe-payments strong-parameters