Ruby on rails Braintree“;购物车“-类似于rails应用程序中的实现/查找以前的参数[:id]?

Ruby on rails Braintree“;购物车“-类似于rails应用程序中的实现/查找以前的参数[:id]?,ruby-on-rails,braintree,Ruby On Rails,Braintree,我正在尝试将Braintree集成到我的rails应用程序中,它已经有了一个控制器、模型和视图。现在基本上你可以指定一个金额,但我将其状态设置为“待定”。我希望它,以便用户可以作出这样的存款,但在任何时候支付它使用Braintree(阿拉购物车)。我是否需要创建另一个控制器和/或模型来执行此操作?(例如,我看到的所有Braintree示例都希望立即付款) 具体来说,我一直在努力利用我已有的“存款”。我将用户名、信用卡信息等表格放在存款“显示”页面和确认按钮上。如果所有字段都满足验证要求,这似乎可

我正在尝试将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
现在是Braintree事务id,而不是存款id(主键)。当然,
Deposit.find(params[:id])
无法找到。
实现这一点的最佳方式是什么?我应该以某种方式存储以前的id还是以另一种方式获取它?我应该使用另一个控制器吗?谢谢

简而言之,您应该使用一个购物车模型,通过我在这里收集的信息连接到这个存款模型。然而,基于其他问题,这种感觉可能会改变

因此,仅根据您在上面所写的内容:

如果我们采用RESTful方法,您应该为所有新存款创建一个
存款#new

Deposit#create
中,然后将所有逻辑放入
Deposit.rb
模型文件中。这个逻辑包括,去大脑树等等

您说您正在处理您已经拥有的存款,在这种情况下,应该使用
Deposit#edit
方法处理这些存款


关于这一点,我想问你更多的问题,你是否使用ActiveMerchant?如果没有,为什么不呢?

谢谢您的快速回答。我决定把事情简化,只可能有一个“待定”存款,这样我就可以很容易地找到它,而且它更有意义(而且我不必考虑存储我担心的ID)。我还决定改用贝宝,并使用ActiveMerchant。谢谢你。所以我想我帮你找到了答案。如果stackoverflow有一个盒子可以让你表达感激之情。。。