【发布时间】:2014-08-14 05:35:08
【问题描述】:
我正在为我的所有应用程序页面使用一个通用布局文件。但我只想为sign_in 页面包含不同的布局。我怎样才能实现它?
【问题讨论】:
-
您也只需添加 app/layouts/devise.html.haml 即可进行设计布局,无需覆盖任何控制器。
标签: ruby-on-rails ruby layout
我正在为我的所有应用程序页面使用一个通用布局文件。但我只想为sign_in 页面包含不同的布局。我怎样才能实现它?
【问题讨论】:
标签: ruby-on-rails ruby layout
试试这个:
假设您有一个用于登录操作的会话控制器
这里的 'other_layout' 是 app/views/layouts 目录中的布局
class SessionsController < ApplicationController
layout "other_layout", only: [:sign_in]
def sign_in
end
end
【讨论】:
设计
如果您使用Devise(根据您的问题不太可能判断,但无论如何都会有人感兴趣) - 您可能想要使用devise_controller? 助手
你可以这样使用它:
#app/controllers/application_controller.rb
Class ApplicationController < ActionController::Base
layout :set_layout
private
def set_layout
devise_controller? ? "devise" : "application"
end
end
【讨论】:
sign_in 操作时 - 这是您创建的自定义操作,还是您对 `Sessions¬ 控制器的 create 操作的术语?
layouts/login.html.erb - 我们需要知道原因和位置