在 Rails 中制作可选控制器需要包含哪些模块?

What modules to include to make a selectable controller in Rails?

我想在 Rails 中实现一个对象功能系统,这意味着在几十个不同的方面对象上进行单一路由调度:

resources :facets, param: :swissnumber

按照 Rails Routes - Select controller dynamically 中的建议通过路由中的代码实现这一点似乎非常不切实际,因此我更愿意在 Facet 模型中使用 STI。

我有一个准系统控制器,它只会向 facet 发送操作:

def show
  Facet.find(params[:swissnumber]).show(request,params)
end

所以在 Facet 模型的方法中,我希望能够调用控制器的典型方法,例如 headrender。我预计需要哪些模块?

目前,我正在寻找我应该包括哪些模块,从 ActionController::HeadActionController::Rendering 开始,但它们还不够,我想知道是否有一个伞形模块。

或者我的 Facet 应该扩展 ActionController::API::Base 并包含来自 ActiveRecord 的模块? (我处于多重继承场景中……)

我意识到我正在寻找复制典型控制器源代码的语法,但它只是隐式对象上的方法,所以简单的解决方案是将控制器传递到 facet,我在那里 controller.rendercontroller.request 等等……