首页 > 解决方案 > Rails prepend_view_paths 没有覆盖默认视图路径

问题描述

我正在重新模板化需要呈现不同视图而不是旧样式的应用程序的管理部分。下面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

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

关于为什么的任何想法?

标签: ruby-on-railsactioncontroller

解决方案


所以我自己想出了这个。

它与路由范围有关。基本上它是在我的lookup_context.

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

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

推荐阅读