我可以在Rails 5中定义要在视图中使用的布局

时间:2017-01-09 22:44:45

标签: ruby-on-rails ruby-on-rails-5

我的观点都使用了布局views/layouts/application.html.erb

对于我的一些观点,我想使用差异布局views/layouts/page.html.erb

我知道在控制器中我可以定义layout:但我的问题是我是否也可以在视图本身内定义布局?

我还可以在哪里设置布局?

背景是我正在使用Devise,我想为登录页面定义一个不同的布局。默认情况下,设计不允许我访问其控制器。我可以生成控制器,但这样做会让我遇到其他问题。所以我的第一个尝试就是在没有控制器的情况下设置布局。

1 个答案:

答案 0 :(得分:0)

虽然你可以从视图中做到这一点,但更简洁的解决方法就是简单地对设计控制器进行子类化:

# app/controllers/sessions_controller.rb
class SessionsController < Devise::SessionsController
  layout 'page'
end

然后告诉devise路由到您的自定义控制器:

# config/routes.rb
devise_for :users, controllers: { sessions: "sessions" }