Rails 的中间人控制器
Middle man controller for Rails
我的应用程序有两个应用程序控制器。一个保存我所有内部信息并检查用户是否登录的。
另一个应用程序控制器位于名为 external 的命名空间下。
该控制器允许用户使用令牌访问某些 url,该令牌代表一家公司,该公司经过验证以查看该令牌是否属于一家公司。这样用户不需要登录,他们只需要知道他们的 uniq 令牌。
我面临的问题是我想重复使用属于我的主应用程序控制器的自动完成方法,但是这个控制器会检查用户是否已登录,所以如果我尝试登录,我会收到 401在外部搜索。
我知道 rails 中没有双重继承,但是有没有办法让一个控制器属于两个不同的控制器?这样我就可以将我所有的自动完成方法粘贴到这个控制器中,并且我的两个应用程序控制器都可以访问它。
我想在控制器中保留自动完成方法的主要原因是我可以为它们创建路由并执行操作 return JSON 以便 JQuery自动完成可以使用此信息。
提前谢谢你们,如果我的想法有误,请告诉我以及您可能需要完成此任务的任何其他想法。
您可以通过使用自动完成方法(以及您希望在控制器之间共享的任何其他方法)创建模块并将该模块包含在适当的控制器中来实现此目的。
module ModuleName
def some_method
...
end
...
end
在控制器中:
class ControllerName < ApplicationController
include ModuleName
...
end
some_method
将在 ControllerName 和包含该模块的任何其他控制器中可用
我的应用程序有两个应用程序控制器。一个保存我所有内部信息并检查用户是否登录的。 另一个应用程序控制器位于名为 external 的命名空间下。 该控制器允许用户使用令牌访问某些 url,该令牌代表一家公司,该公司经过验证以查看该令牌是否属于一家公司。这样用户不需要登录,他们只需要知道他们的 uniq 令牌。
我面临的问题是我想重复使用属于我的主应用程序控制器的自动完成方法,但是这个控制器会检查用户是否已登录,所以如果我尝试登录,我会收到 401在外部搜索。
我知道 rails 中没有双重继承,但是有没有办法让一个控制器属于两个不同的控制器?这样我就可以将我所有的自动完成方法粘贴到这个控制器中,并且我的两个应用程序控制器都可以访问它。
我想在控制器中保留自动完成方法的主要原因是我可以为它们创建路由并执行操作 return JSON 以便 JQuery自动完成可以使用此信息。
提前谢谢你们,如果我的想法有误,请告诉我以及您可能需要完成此任务的任何其他想法。
您可以通过使用自动完成方法(以及您希望在控制器之间共享的任何其他方法)创建模块并将该模块包含在适当的控制器中来实现此目的。
module ModuleName
def some_method
...
end
...
end
在控制器中:
class ControllerName < ApplicationController
include ModuleName
...
end
some_method
将在 ControllerName 和包含该模块的任何其他控制器中可用