检查当前控制器是否具有 application_controller 内其他控制器的父级

发布于 2024-10-02 14:22:07 字数 188 浏览 3 评论 0原文

我有一个单独的网站部分供单独的专用客户使用,他们在 /dedicated 路径下有工具,并且他们拥有的所有控制器都是 DedicatedController 的继承。 我想在 application_controller 中创建一个 before_filter ,以保护该客户免于打开不在由 Dedicated_controlle 继承的控制器中的任何其他页面。

I have a separete part of the site for separate, dedicated customers, they have tools under /dedicated path, and all controllers they have are inheritences of DedicatedController.
I want to create a before_filter in application_controller to protect this customers from opening any other pages that are not in controllers that inherited by dedicated_controlle.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遇见了你 2024-10-09 14:22:07

如果您在 ApplicationController 中使用 before_filter 来阻止客户访问那里的页面,您可以在 DedicatedController 的基本控制器中使用 skip_filter

因此,对于我们来说,我们有:

class ApplicationController
  before_filter :ensure_not_a_customer
  .
  .
end
class Admin::BaseController < ApplicationController
  skip_filter :ensure_not_a_customer
  .
  .
end
class Admin::WebpageController < Admin::BaseController
  .
  .
end

然后从 Admin::BaseController 继承的任何内容都将跳过 ApplicationController 中的 before_filter。

If you use a before_filter in the ApplicationController to prevent customers from going to pages there you can use skip_filter in the base controller for the DedicatedController.

So for ours we have:

class ApplicationController
  before_filter :ensure_not_a_customer
  .
  .
end
class Admin::BaseController < ApplicationController
  skip_filter :ensure_not_a_customer
  .
  .
end
class Admin::WebpageController < Admin::BaseController
  .
  .
end

Then anything inherited from Admin::BaseController will skip the before_filter from the ApplicationController.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文