Je sais que c'est probablement une question simple, mais j'essaie toujours de comprendre Devise out ...
Je veux render :layout => false
sur ma page de connexion; comment puis-je le faire avec Devise ?
Vous pouvez sous-classer le contrôleur et configurer le routeur pour l'utiliser:
class SessionsController < Devise::SessionsController
layout false
end
Et en config/routes.rb
:
devise_for :users, :controllers => { :sessions => "sessions" }
Vous devez également déplacer les vues de session sur ce contrôleur.
OU créer une méthode dans 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
Vous pouvez également créer un fichier sessions.html.erb dans app/views/layouts/devise. Cette disposition sera ensuite utilisée uniquement pour l'écran de connexion.
En utilisant le devise_controller? aide, vous pouvez déterminer quand un contrôleur Devise est actif et répondre en conséquence. Pour que Devise utilise une mise en page distincte pour le reste de votre application, vous pouvez faire quelque chose comme ceci:
class ApplicationController < ActionController::Base
layout :layout_by_resource
protected
def layout_by_resource
if devise_controller?
"devise"
else
"application"
end
end
end
créer un fichier devise.html.erb dans vos vues/présentations
Donc, si c'est un contrôleur de périphérique qui rendra la disposition du dispositif, sinon la disposition de l'application
de: https://github.com/plataformatec/devise/wiki/How-To:-Create-custom-layouts