Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 从演示者/模块访问Rails帮助程序?_Ruby On Rails_Helpers_Mvp - Fatal编程技术网

Ruby on rails 从演示者/模块访问Rails帮助程序?

Ruby on rails 从演示者/模块访问Rails帮助程序?,ruby-on-rails,helpers,mvp,Ruby On Rails,Helpers,Mvp,从模型中访问Rails帮助程序有很多问题,所有这些问题都正确地指出答案是不这样做。这不是那个问题 我有一些相当复杂的控制器和视图代码,我想将它们抽象到presenter类中。但该类不是ApplicationController的后代。我如何才能访问Desive的当前用户?目前似乎没有“官方正确”的方法。两种可能性: 它是有黑客攻击性的,但您可以将当前控制器存储在ApplicationController中,并在演示者中引用它以获取帮助: class ApplicationController &

从模型中访问Rails帮助程序有很多问题,所有这些问题都正确地指出答案是不这样做。这不是那个问题

我有一些相当复杂的控制器和视图代码,我想将它们抽象到presenter类中。但该类不是ApplicationController的后代。我如何才能访问Desive的当前用户?

目前似乎没有“官方正确”的方法。两种可能性:

  • 它是有黑客攻击性的,但您可以将当前控制器存储在ApplicationController中,并在演示者中引用它以获取帮助:

    class ApplicationController < ActionController::Base
      prepend_before_filter { @@current_controller = self }
    end
    
    class YourPresenter
      def current_user
        ApplicationController.current_controller.current_user
      end
    end
    
    class ApplicationController
  • 杰夫·卡西米尔(Jeff Casimir)正在开发一款名为德雷珀(draper)的伟大的装饰/演示宝石,它概括了整个创意:

  • 2015年这仍然是一条路吗?