【发布时间】:2020-03-17 15:25:51
【问题描述】:
我想在 Rails 中实现一个对象能力系统,这意味着对几十个不同的方面对象进行单一路由调度:
resources :facets, param: :swissnumber
按照Rails Routes - Select controller dynamically 中的建议在路由中通过代码实现这一点似乎非常不切实际,所以我更喜欢在 Facet 模型中使用 STI。
我会有一个准系统控制器,它只会将动作分派到方面:
def show
Facet.find(params[:swissnumber]).show(request,params)
end
所以在Facet 模型的方法中,我希望能够调用控制器的典型方法,例如head 或render。我可能需要哪些模块?
目前,我正在寻找我应该包含哪些模块,从 ActionController::Head 和 ActionController::Rendering 开始,但它们还不够,我想知道是否有一个伞形模块。
或者我的Facet 应该扩展ActionController::API 或::Base 并包含来自ActiveRecord 的模块? (我处于多重继承场景中……)
【问题讨论】: