Ruby on rails 轨道:不同的布局
在我的应用程序中,我想在用户登录和未登录时使用不同的布局 应用程序控制器:Ruby on rails 轨道:不同的布局,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,在我的应用程序中,我想在用户登录和未登录时使用不同的布局 应用程序控制器: class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception layout
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
layout :determine_layout
private
def determine_layout
user_signed_in? ? 'application' : 'landing'
end
end
class ApplicationController
但是这个代码不起作用:布局没有改变。你能想出这个原因吗?还是我犯了一些错误
谢谢 将作为评论撰写,但在此处处理将更容易: 根据,您可以确定它是否基于
designe\u controller
:
class ApplicationController < ActionController::Base
layout :layout_by_resource
protected
def layout_by_resource
if devise_controller?
"layout_name_for_devise"
else
"application"
end
end
end
class ApplicationController
这将允许您在用户未登录的情况下将其指向会话#landing
,这意味着在自定义设计会话控制器中创建新操作
这将使确定他们是否登录的过程干涸(如果他们没有登录,他们可以从Desive的
会话
或注册
控制器中看到静态视图code看起来正常,这是您一直使用的布局?当用户登录时,它是应用程序
,当用户没有登录布局时,它是登录
正常,因此您的方法可以工作…检查是否使用r\u已登录?
注销时返回false。