在范围内的路由中设置布局

ach*_*ion 2 layout scope routes ruby-on-rails

我有管理控制器,我想设置“/admin”路径的布局。

我尝试像:

scope '/admin' do
  layout 'admin' # did't work
  get '/' => 'admin#index', as: 'admin'
  resources :posts, as: 'admin_posts'
end
Run Code Online (Sandbox Code Playgroud)

我可以在 AdminController 中设置布局,如下所示:

class AdminController < ApplicationController
  layout 'admin'
end
Run Code Online (Sandbox Code Playgroud)

但这是一个坏方法,因为为从“/admin”路径调用的所有控制器合理地使用一些布局

我怎样才能做到呢?

Alp*_*nar 7

你不能直接在你的routes.rb中设置布局

我认为你所做的是正确的方式

class AdminController < ApplicationController
  layout 'admin'
end
Run Code Online (Sandbox Code Playgroud)

现在您将使用 AdminController 在管理范围内生成其他控制器

class UsersController < AdminController
end
Run Code Online (Sandbox Code Playgroud)

或者如果在命名空间中

class Admin::UsersController < AdminController
end
Run Code Online (Sandbox Code Playgroud)

如果我确实理解你的问题,那就是我所做的。