Rails 同一个 Rails 项目中如何使用两套 layout?

macknight · 2015年02月10日 · 最后由 yang_ruby 回复于 2015年02月26日 · 2626 次阅读

通常 rails 项目中会使用 layouts/application.html.erb 来写所有网页的通用 layout 那么如何使用两套 layout,并在相应的页面里指定呢?

# app/controllers/admin/application_controller.rb
class Admin::ApplicationController < ApplicationController
  layout "admin" # app/views/layouts/admin.html.erb
  ...
end

在任何一个 controller 里,都可以手动写上 layout "the_name_of_layout_without_extension"

另做一个 controller,比如叫 admin_controller.rb,然后其他的 controller 继承它。这样就可以在 controller 间共享同一个 layout 了,而不继承它的 controller,还是使用默认的 layout。

admin_controller.rb

class AdminController < ApplicationController
  layout "admin"
end

(脚手架) 在 view 中 layout 下写自己想要的 layout,然后在 controller 所有的方法前书写 layout "自己新写的 layout 的 name"

需要 登录 后方可回复, 如果你还没有账号请 注册新账号