2017-03-27 2 views
-2

私はMentorと呼ばれる教師用のストライプを通して支払い処理をセットアップしようとしています。UrlGenerationErrorを修正する方法必要なキーが見つからない:[quid]エラー

このプロセスは、カードの詳細を追加した学生を、コンテンツをダウンロードできるページピックアップにリダイレクトすることから成ります。なんらかの理由で、キー[:quid]が欠落していると言われています。ここで

は私のトランザクション・コントローラです:

class TransactionsController < ApplicationController 

def create 
    mentor = Mentor.find_by!(slug: params[:slug]) 
    token = params[:stripeToken] 

    begin 
     charge = Stripe::Charge.create(
     :card => token, 
     :amount  => (mentor.price * 100).floor, 
     :description => current_user.email, 
     :currency => 'gbp' 
     ) 

     @sale = mentor.sales.create(email_user: current_user.email) 
     redirect_to pickup_url(guid: @sale.guid) 

    rescue Stripe::CardError => e 
     @error = e 
     redirect_to mentor_path(mentor), notice: @error 
    end 

end 

def pickup 
    @sale = Sale.find_by!(guid: params[:guid]) 
    @mentor = @sale.mentor 
end 

エンド

ここsale.rbさ:

class Sale < ActiveRecord::Base 
before_create :generate_guid 
belongs_to :mentor 

private 
    def generate_guid 
     self.guid = SecureRandom.uuid() 
    end 
end 

アンここでは、エラーの概要です:

The error screenshot

+0

あなたの 'db/schema.rb'を投稿してください。 – brito

+0

'routes.rb'を教えてください。 'quid'と' guid'のように見えます。 –

+0

@Зелёныйright - 'config/routes.rb'ファイルに' pickup'ルートが定義されているところでは、 'guid'ではなく' quid'と入力したことがわかります。これを変更し、サーバーを再起動してもう一度お試しください! – omnikron

答えて

0
@sale = mentor.sales.create(email_user: current_user.email) 
redirect_to pickup_url(quid: @sale.guid) 
+1

これはうまくいくかもしれませんが、問題はおそらくタイプミスで起きている可能性があります。元のタイプミスをこのようにアプリ全体に永続させるのではなく、修正する方が良いでしょう。 – omnikron

+0

コードを投げ捨てるのではなく、コードを使用して問題を解決してください。彼らは彼らが問題に再び遭遇した場合にそれを修正する方法を理解し、うまくいけば他人を助けることができるようにOPを教育したい。 –

関連する問題