BraintreeをRailsアプリに統合しようとしています。このアプリには、すでにデポジットコントローラー、モデル、ビューがあります。現在、基本的に金額を指定できますが、ステータスを「保留中」に設定しています。ユーザーがそのようなデポジットを行うことができるようにしたいのですが、Braintree(ショッピングカート)を使用していつでも支払うことができます。これを行うには、別のコントローラーやモデルを作成する必要がありますか?(たとえば、私が見たすべてのBraintreeの例では、すぐに支払いが必要です)。
具体的には、私はすでに持っている「預金」を使って作業しようとしています。入金の「表示」ページと確認ボタンに、ユーザー名やクレジットカード情報などのフォームを入れました。これは、すべてのフィールドが検証を満たしている場合は正常に機能しているように見えますが、エラーが発生して表示ページを再度レンダリングする場合は機能しません。DepositsController.rb内:
def confirm
@deposit = Deposit.find(params[:id])
@result = Braintree::TransparentRedirect.confirm(request.query_string)
if @result.success?
render :action => "confirm"
else
render :action => "show"
end
end
問題は:id
、預金ID(主キー)ではなく、BraintreeトランザクションIDになっていることです。だからもちろんDeposit.find(params[:id])
見つかりません。これを実装するための最良の方法は何ですか?以前のIDを何らかの方法で保存する必要がありますか、それとも別の方法で取得する必要がありますか?別のコントローラーを使用する必要がありますか?ありがとう!