gpt4 book ai didi

ruby-on-rails-3 - Rails - 可以在命名空间 Controller 之间共享 View (部分、模板和布局)吗?

转载 作者:行者123 更新时间:2023-12-02 03:49:07 25 4
gpt4 key购买 nike

我想在来自不同命名空间的 Controller 之间共享 View ,包括局部 View 、布局和模板。

问题

而不是把我的观点放进去

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/... 正常。

我尝试过的一些事情:

  1. 使用类似于 prepend_view_path 的东西不会在这里工作,因为对于 admin/courses#index 它仍然会在任何 View 路径中寻找模板 admin/courses/index

  2. 使用 layout方法可能有效,但可能不适用于模板和部分。

  3. 我已经尝试覆盖渲染方法,但这似乎有点hacky。我不能只在 ApplicationController 中执行此操作,因为它不处理 View 中的局部渲染。所以我不得不在 ApplicationHelper 类中再次重写 render 方法,这很尴尬,不是 DRY,也不是那么简单。

提前致谢!

最佳答案

我喜欢铁轨。它自动执行,sorta。

我有从基础 Controller 扩展的 Controller ,即 Admin::CoursesController 正在扩展 BaseCoursesController,等等。

所以我只需要把我的观点放在

app/views/base_courses/index...

而且我仍然可以选择将我的观点放入

app/views/admin/courses/index...

瞧!

关于ruby-on-rails-3 - Rails - 可以在命名空间 Controller 之间共享 View (部分、模板和布局)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15102245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com