我想在不同命名空间的控制器之间共享视图,包括局部视图、布局和模板。
问题
而不是把我的观点放进去
app/views/#{namespace}/#{controller}/...
app/views/layouts/#{namespace}/...
我想表达我的观点
app/views/#{controller}/...
app/views/layouts/... # as normal, without namespaces
我也希望这是可选的。例如,如果有布局,app/views/layouts/#{namespace}/...
则使用它,否则app/views/layouts/...
照常使用。
我尝试过的一些事情:
在这里使用类似的东西
prepend_view_path
是行不通的,因为它仍然会在任何视图路径中admin/courses#index
寻找模板。admin/courses/index
使用该
layout
方法可能有效,但可能不适用于模板和部分。我试过覆盖 render 方法,但这似乎有点hacky。而且我不能只在 中执行此操作
ApplicationController
,因为它不处理视图中的渲染部分。所以我不得不在ApplicationHelper
课堂上再次覆盖渲染方法,这很尴尬,不是干的,也不是那么直截了当。
提前致谢!