我正在尝试将 Braintree 集成到我的 rails 应用程序中,该应用程序已经具有存款控制器、模型和视图。现在基本上您可以指定一个金额,但我将其状态设置为“待定”。我希望用户可以进行这样的存款,然后随时使用 Braintree(ala 购物车)付款。我是否必须创建另一个控制器和/或模型来执行此操作?(例如,我见过的所有 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
现在是 Braintree 交易 ID,而不是存款 id(主键)。所以当然Deposit.find(params[:id])
找不到。实现这一点的最佳方法是什么?我应该以某种方式存储以前的 id 还是以另一种方式获取它?我应该使用另一个控制器吗?谢谢!