我想在不同命名空间的控制器之间共享视图,包括部分,布局和模板。
而不是将我的观点放在
中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
。< / p>
使用layout
方法可能有效,但可能不适用于模板和部分。
我已尝试覆盖渲染方法,但这似乎有点 hacky 。我不能只在ApplicationController
中执行此操作,因为它不处理视图中的部分渲染。所以我必须在ApplicationHelper
类中再次覆盖渲染方法,这很尴尬,不是干,而不是直截了当。
提前致谢!
答案 0 :(得分:1)
我喜欢铁轨。它自动完成,sorta。
我有从基本控制器扩展的控制器,即Admin::CoursesController
正在扩展BaseCoursesController
等。
所以我只需要将我的观点放在
中app/views/base_courses/index...
我仍然可以选择将我的观点放在
中app/views/admin/courses/index...
瞧!