繁体   English   中英

设计自定义布局

[英]Devise custom layout

我需要一些帮助。

我正在使用Devise gem进行身份验证,并且按照以下步骤设置了路由

Rails.application.routes.draw do
  devise_for :users, path: '', path_names: { sign_in: 'login', sign_out: 'logout', sign_up: 'join', password: 'forgot-password', edit: 'settings'}
  root to: 'pages#index'
end

然后,我对所有设计视图使用不同的布局文件

class ApplicationController < ActionController::Base
  layout :layout_by_resource

  private

  def layout_by_resource
    if devise_controller? && resource_name == :user
      "devise_custom"
    else
      "application"
    end
  end
end

这工作正常,但我想为设计用户/编辑设置例外。 这样,注册编辑操作将使用应用程序布局。

请任何人,我该如何实现?

提前致谢!

/雅各布

根据本节的内容 ,您可以执行以下操作

class ApplicationController < ActionController::Base
    # Layout per resource_name
    def layout_by_resource
      if devise_controller? && resource_name == :admin
        "layout_name_for_devise_admin"
      else
        "application"
      end
    end

    # Layout per resource_name AND action
    def layout_by_resource
      if devise_controller? && resource_name == :user && action_name == "new"
        "layout_name_for_devise"
      else
        "application"
      end
    end
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM