Rails:使用Devise的多个布局

时间:2012-07-07 01:14:15

标签: ruby-on-rails layout devise views

如何根据用户是否登录来设置完全不同的布局?

1 个答案:

答案 0 :(得分:1)

按照
的说明进行操作 https://github.com/plataformatec/devise/wiki/How-To%3a-Create-custom-layouts
如果用户登录则进行检查,设计意味着检查 user_signed_in?,这是一个设计助手。

具体做法是:

class ApplicationController < ActionController::Base
  layout :layout_by_resource

  protected

  def layout_by_resource
    if user_signed_in?
      "special_layout_name_for_logged_in"
    else
      "application"
    end
  end
end

并将special_layout_for_logged_in.html.erb视图文件放在layouts目录中。