我的观点都使用了布局views/layouts/application.html.erb
对于我的一些观点,我想使用差异布局views/layouts/page.html.erb
我知道在控制器中我可以定义layout:
但我的问题是我是否也可以在视图本身内定义布局?
我还可以在哪里设置布局?
背景是我正在使用Devise,我想为登录页面定义一个不同的布局。默认情况下,设计不允许我访问其控制器。我可以生成控制器,但这样做会让我遇到其他问题。所以我的第一个尝试就是在没有控制器的情况下设置布局。
答案 0 :(得分:0)
虽然你可以从视图中做到这一点,但更简洁的解决方法就是简单地对设计控制器进行子类化:
# app/controllers/sessions_controller.rb
class SessionsController < Devise::SessionsController
layout 'page'
end
然后告诉devise路由到您的自定义控制器:
# config/routes.rb
devise_for :users, controllers: { sessions: "sessions" }