Rails prepend_view_paths 未覆盖默认视图路径

Rails prepend_view_paths not overriding default view path

我正在重新制作应用程序的管理部分的模板,该部分需要呈现不同的视图而不是旧样式。在下面,view_paths 显示路径是前置的,但仍然呈现旧视图。

# View folder structure
# /app
# --/views
# ----/admin
# ------/dashboard
# --------show.html.erb
# ----/admin_v2
# ------/dashboard
# --------show.html.erb

# routes.rb
constraints subdomain: 'admin' do
    scope module: 'admin', as: 'admin' do
        root to: 'dashboard#show'
    end
end

# AdminController
class AdminController < ApplicationController
    prepend_view_paths "#{Rails.root}/app/views/admin_v2"
end

# Admin::DashboardController
class Admin::DashboardController < AdminController
    def show
    end
end

我移动了一些东西,试图在其中戳洞,但我唯一的猜测是它与我的路线结构方式有关。

关于原因有什么想法吗?

所以我自己想出来了。

与路由作用域有关。基本上它是在我的 lookup_context.

中添加一个管理员前缀

通过更改我的文件夹结构以考虑到这一点,如下所示,我能够使一切正常工作。

# View folder structure
# /app
# --/views
# ----/admin
# ------/dashboard
# --------show.html.erb
# ----/admin_v2
# ------/admin
# --------/dashboard
# ----------show.html.erb