Rails prepend_view_paths不会覆盖默认视图路径

时间:2019-05-03 19:32:10

标签: ruby-on-rails actioncontroller

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

我已经四处移动,试图戳穿其中的孔,但是我唯一的猜测是,这与我的路线的结构方式有关。

关于为什么的任何想法?

1 个答案:

答案 0 :(得分:1)

所以我自己弄清楚了。

它与路由范围有关。基本上是在我的lookup_context上添加一个管理员前缀。

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

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