【问题标题】:Middle man controller for RailsRails 的中间人控制器
【发布时间】:2016-05-09 20:35:29
【问题描述】:

我的应用有两个应用控制器。一个保存我所有内部信息并检查用户是否登录的设备。 另一个应用程序控制器位于名为 external 的命名空间下。 该控制器允许用户使用令牌访问某些 url,并且令牌代表公司,该公司经过验证以查看令牌是否属于公司。这样用户就不需要登录了,他们只需要知道他们的 uniq 令牌。

我面临的问题是我想重用属于我的主应用程序控制器的自动完成方法,但是这个控制器检查用户是否已登录,所以如果我尝试搜索,我会得到 401外侧。

我知道 rails 中没有双重继承,但是有没有办法让一个控制器属于两个不同的控制器?这样我就可以将我所有的自动完成方法粘贴在这个控制器中,并且我的两个应用程序控制器都可以访问它。

我想将自动完成方法保留在控制器中的主要原因是,我可以为它们创建路由并让操作返回 JSON,以便 JQuery 自动完成可以使用此信息。

提前谢谢你们,如果我认为这是错误的,请告诉我以及您可能需要完成的任何其他想法。

【问题讨论】:

    标签: ruby-on-rails routes controllers


    【解决方案1】:

    您可以通过使用自动完成方法(以及您希望在控制器之间共享的任何其他方法)创建模块并将模块包含在适当的控制器中来完成此操作。

    module ModuleName
      def some_method
        ...
      end
      ...
    end
    

    在控制器中:

    class ControllerName < ApplicationController
      include ModuleName
      ...
    end
    

    some_method 将在 ControllerName 和包含该模块的任何其他控制器中可用

    【讨论】:

    猜你喜欢
    • 2012-10-07
    • 2014-05-19
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多