0

我有这个 AdminController

class Admin::AdminController < ApplicationController
  before_filter :is_admin?

  def dashboard

  end

  def is_admin?
    redirect_to root_path, :flash => { :alert => "You are not an admin!" } if !current_user.admin?
  end

end

以及从上面继承的另一个控制器:

class Admin::CompetitionEntriesController < Admin::AdminController
  before_action :set_competition_entry, only: [:show, :edit, :update, :destroy]
....
end

我的路线文件是:

Foo::Application.routes.draw do
  root 'competition_entries#index'

  devise_for :users
  resources :competition_entries

  namespace :admin do
    root 'admin#dashboard'
    resources :competition_entries
  end

....
..
.
end

现在为什么我在尝试访问“ http://localhost:3000/admin”时会收到此错误

Missing template admin/admin/dashboard...

我得到了这个额外的管理员?为什么?我不想使用我想使用命名空间的范围。

谢谢。

4

1 回答 1

0

路由不影响模板的默认搜索路径。如果您的控制器类名为Foo::BarController,Rails 将在 app/views/foo/bar/ 中查找模板,除非您另外指定。

于 2013-10-07T15:45:56.280 回答