Ruby on rails 我如何在主应用程序中获得可用的engines应用程序控制器方法

Ruby on rails 我如何在主应用程序中获得可用的engines应用程序控制器方法,ruby-on-rails,authentication,Ruby On Rails,Authentication,我正在编写一个具有身份验证功能的身份验证引擎!方法以及当前用户助手方法等 我希望能够调用此验证!方法,并使其使用由engines应用程序控制器设置的当前_用户 在做了一点谷歌搜索之后,我无意中看到了这篇文章,但这并没有什么帮助,里面也没有任何建议的链接 现在,在engine.rb文件中,我有以下代码: require 'my_engine' module MyEngine class Engine < ::Rails::Engine isolate_namespace MyE

我正在编写一个具有身份验证功能的身份验证引擎!方法以及当前用户助手方法等

我希望能够调用此验证!方法,并使其使用由engines应用程序控制器设置的当前_用户

在做了一点谷歌搜索之后,我无意中看到了这篇文章,但这并没有什么帮助,里面也没有任何建议的链接

现在,在engine.rb文件中,我有以下代码:

require 'my_engine'

module MyEngine
  class Engine < ::Rails::Engine
    isolate_namespace MyEngine
    initializer "my_engine.load_helpers" do
      ActiveSupport.on_load(:action_controller) do
        include MyEngine::Helpers
     end
   end
 end
如果可能的话,最好的方法是什么


在开始之前,我做事情的方式是设置一个会话[:current_user_id],然后将它传递给主控制器中的current_user方法,主控制器中也包含了authenticate!方法,该方法将用户发送到身份验证引擎。如果我能打电话给你就好了!在主应用程序中,让engines应用程序控制器处理该方法并设置当前用户。

我碰巧在上找到了一些内容。现在我得到了未定义的方法“authenticate!”。这只会使我可以使用助手,但我认为这可能对我想做的事情有用。因此,看起来,因为助手只是一个模块,我可以使用它,包括MyEngine::ApplicationHelper,这允许我至少以我想要的方式使用authenticate方法,但我似乎无法确定如何设置当前用户。好,因此,它在我的控制器中可用,但在我的视图中不可用。如果我在控制器方法中调用current_user,它将返回预期结果,但在视图中它将返回未定义的局部变量。我需要将helper_方法:current_user放入我的主应用程序控制器中。我希望我可以把这个放在引擎应用程序助手中,但我想不会。我不知道我是否做得对,所以我肯定是在寻求对正确方法的批评。
uninitialized constant MyEngine::Helpers