rails体系结构/最佳实践问题

问题描述

| 我一直在集思广益,以实现这一目标的最佳方法,并认为我应该向社区提出一些想法/澄清。 基本上是从单个付款控制器进行的,我希望能够处理用户可能选择的各种付款方式。例如,我的控制器收到带有“ 0”的发帖请求。我想通过逻辑处理Paypal特定操作,然后将返回给URL的URL(返回Paypal)交给控制器。 我正在执行“ 1”来初始化Paypal类,但遇到的问题是无法访问Paypal所需的各种数据(即当前用户信息,请求IP地址,cookie数据,URL帮助器等)。 那么我想也许我可以拥有一个贝宝模块,但是如何以编程方式包括正确的支付模块?似乎我可能滥用了模块概念,因为我会将模块用于特定逻辑,而不是共享逻辑。 因此,如果用户改为选择Google Checkout,则无论采用哪种付款方式,控制器都只需要通用说明 接受参数[:payment_option] 获取付款方式 收到payment_option_response 有什么想法可以做这样的事情吗?过去我曾遇到过类似情况,但始终不确定这是最佳途径。     

解决方法

        
class Payment                                                                
  def self.handle                                                            
    raise \'must impliment in subclass\'                                       
  end                                                                        
end                                                                          

class PaypalPayment < Payment                                                
end                                                                          

class GooglePayment < Payment                                                
end                                                                          

class PaymentController < ApplicationController                              
  def show_me_the_money                                                      
    case params[:payment_option]                                             
    when \'paypal\': url = PaypalPayment.handle params                         
    when \'google\': url = GooglePayment.handle params                         
    end      

    redirect_to url                                                                   
  end                                                                                 
end             
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...