ruby-on-rails – 使用条带创建订阅
发布时间:2020-12-17 03:06:59 所属栏目:百科 来源:网络整理
导读:我正在尝试使用Stripe创建订阅包. 这就是我到目前为止所拥有的 我的控制器方法. def subscription_one session[:tab] = "$1.99/Month" @subscription = Subscription.where(user_id:current_user.id) end def create @subscription = Subscription.new(param
我正在尝试使用Stripe创建订阅包.
这就是我到目前为止所拥有的 我的控制器方法. def subscription_one session[:tab] = "$1.99/Month" @subscription = Subscription.where(user_id:current_user.id) end def create @subscription = Subscription.new(params[:subscription]) if @subscription.save_with_payment redirect_to @subscription,:notice => "Thank you for subscribing!" else render :new end end subscription_one.html.erb <% if @subscription.present? %> CREDIT CARD DETAILS PRESENT <% else %> <form action="/membership/apply" method="POST" id="payment-form"> <article> <label class="amount"> <span>Amount: $5.00</span> </label> </article> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="<%= Rails.configuration.stripe[:publishable_key] %>" data-description="A month's subscription" data-amount="500"></script> <% end %> 在我提供的字段中显示所有值后,当我提交时,我收到错误 ActionController::InvalidAuthenticityToken in MembershipController#create 有任何想法吗? 解决方法
几个问题:
– 形成 您包含的表单是硬编码的 您遇到的问题是,如Philidor Green所述,此表单将不具有Rails提供的正确 <%= form_tag path do %> <% end %> 你应该使用 – 订阅 Subscription.new(params[:subscription]) 应该: def subscribed_one Subscription.new(subscription_params) end private def subscription_params params.require(:subscription).permit(:params,:attributes) end – 更新 为了解决这个问题,我会这样做: #view <% if @subscription.present? %> Credit Card Details Present <% else %> <%= form_tag membership_apply_path,id: "payment-form" do %> <%= content_tag :article do %> <%= label_tag class: "amount" %> <%= content_tag :span,"Amount: $5.00" %> <% end %> <% submit_tag "Susbcribe" %> <% end %> <% end %> #app/views/layouts/application.html.erb <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="<%= Rails.configuration.stripe[:publishable_key] %>" data-description="A month's subscription" data-amount="500"> </script> #app/controllers/subscriptions_controller.rb def subscription_one session[:tab] = "$1.99/Month" @subscription = Subscription.where(user_id:current_user.id) end def create @subscription = Subscription.new(params[:subscription]) if @subscription.save_with_payment redirect_to @subscription,:notice => "Thank you for subscribing!" else render :new end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |