Je sais que c'est probablement une question simple, mais j'essaie toujours de comprendre Devise ...
Je veux render :layout => false
sur ma page de connexion; Comment puis-je faire cela avec Devise ?
Vous pouvez sous-classer le contrôleur et configurer le routeur pour qu'il utilise ceci:
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 en 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
À l'aide de la devise_controller? d'assistance que vous pouvez déterminer la date de Concevoir un contrôleur est active, et réagir en conséquence. D'avoir à Concevoir une mise en page pour le reste de votre demande, vous pourriez 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 dispositif.html.erb fichier dans votre dossier views/layouts
Donc, si son un dispositif de contrôleur de rendre le dispositif de mise en page reste la présentation de l'application
de: https://github.com/plataformatec/devise/wiki/How-To:-Create-custom-layouts
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.