代码之家  ›  专栏  ›  技术社区  ›  GN.

Ruby类在模块下扩展自身是否有效?

  •  4
  • GN.  · 技术社区  · 7 年前

    让一个Ruby类在一个单独的模块下扩展自身是否有效?例如,我有一个 ErrorsController 类。。

    class ErrorsController < ApplicationController
     ....
    end
    

    但是如果在模块下,我想有一个不同的行为。。

    class Share::ErrorsController < ErrorsController
     ....
    end
    

    module Share
      class ErrorsController < ErrorsController
      end
    end
    

    有时似乎有问题。。

    2 回复  |  直到 7 年前
        1
  •  5
  •   Max    7 年前

    为了明确地引用“顶级”错误控制器,典型的技术是在其前面添加两个冒号。例如:

    module Share
      class ErrorsController < ::ErrorsController
      end
    end
    
        2
  •  3
  •   Ivan Olshansky    7 年前

    错误控制器 存储在其他模块中,您应该使用它的完整路径。

    module Share
      class ErrorsController < OtherModule::ErrorsController
      end
    end
    
    推荐文章