【问题标题】:Filter for namespaced controllers过滤命名空间控制器
【发布时间】:2015-11-06 19:32:33
【问题描述】:

我在文件夹 /controllers/admin 中有一组控制器,它们看起来都像这样并且具有相同的 filter

module Admin
  class UsersController < ApplicationController
    before_action :some_method

    #actions
  end
end

每个命名空间控制器如何从一个中心位置继承before_action :some_method

【问题讨论】:

  • 该类本质上与 Admin::UsersController 相同,因此您可以在其中嵌套其他控制器,例如 class Admin::RestrictedUsersController .
  • 对不起。我的意思是我已经有 8 个“管理员控制器”,确切地说是 filter - 有没有办法提取它并让所有 8 个控制器从一个地方继承它?

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-4.2 actionpack


【解决方案1】:

您似乎需要在 Admin 模块命名空间中使用单独的 Base 控制器:

class Admin::BaseController < ApplicationController
  before_action :some_method

  #actions
end

class Admin::UsersController < Admin::BaseController
  #some_method filter is invoked here
end

class Admin::PostsController < Admin::BaseController
  #some_method filter is invoke here
end

【讨论】:

    猜你喜欢
    • 2019-02-19
    • 2010-11-26
    • 2014-05-19
    • 2020-06-14
    • 2012-07-08
    • 1970-01-01
    • 2023-04-04
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多