在另一个帮助文件Rails

时间:2017-07-27 09:13:51

标签: ruby-on-rails ruby inheritance model-view-controller helpers

我在付款文件夹中有一个名为 gateway_controller.rb

的控制器
class Payment::GatewayController < PaymentController
  include Payment::GatewayHelper::Handler

  def set_handler
    @handler = StandardGatewayInterface.get_handler("test") 
  end
end

我的帮助文件在 helpers / payment / gateway_helper / handler.rb 中 看起来像

module Payment::GatewayHelper::Handler
  class StandardGatewayInterface

    def self.get_handler(payment_method)
      puts self.descendants
    end

    # Get a list of subclasses.
    def self.descendants
      ObjectSpace.each_object(Class).select { |cls| cls < self }
    end
  end
end

并且 /helpers/payment/test_fort.rb 中还有另一个文件,其中有一个继承自StandardGatewayInterface的类。

require_relative './gateway_helper/handler'
class TestFort < StandardGatewayInterface
  include Payment::GatewayHelper::Handler
  def build_redirect_url(user_id, product, success_url)
    puts "===in==="
  end

end

当我调用StandardGatewayInterface.get_handler("test")时,它会进入帮助方法,我调用self.descendants,因为它继承自TestFort,所以必须返回StandardGatewayInterface。但我得到的是一个空数组。

我将如何使这项工作?

0 个答案:

没有答案