nee*_*zer 54 ruby-on-rails devise
我知道这可能是一个简单的问题,但我仍然试图将Devise想出来......
我想render :layout => false在我的登录页面上; 我怎么能用Devise做到这一点?
iai*_*ain 103
您可以将控制器子类化并配置路由器以使用它:
class SessionsController < Devise::SessionsController
layout false
end
Run Code Online (Sandbox Code Playgroud)
并在config/routes.rb:
devise_for :users, :controllers => { :sessions => "sessions" }
Run Code Online (Sandbox Code Playgroud)
您还需要将会话视图移动到此控制器.
或制作方法app/controllers/application_controller.rb:
class ApplicationController < ActionController::Base
layout :layout
private
def layout
# only turn it off for login pages:
is_a?(Devise::SessionsController) ? false : "application"
# or turn layout off for every devise controller:
devise_controller? && "application"
end
end
Run Code Online (Sandbox Code Playgroud)
小智 8
通过使用devise_controller?帮助您可以确定Devise控制器何时处于活动状态并做出相应响应.要让Devise对应用程序的其余部分使用单独的布局,您可以执行以下操作:
class ApplicationController < ActionController::Base
layout :layout_by_resource
protected
def layout_by_resource
if devise_controller?
"devise"
else
"application"
end
end
end
Run Code Online (Sandbox Code Playgroud)
在视图/布局中创建devise.html.erb文件
因此,如果它的设备控制器将渲染设计布局,否则应用程序布局
来自:https://github.com/plataformatec/devise/wiki/How-To : -Create-custom-layouts
| 归档时间: |
|
| 查看次数: |
24208 次 |
| 最近记录: |