Mon site Web devrait fonctionner comme facebook.com. Si l'utilisateur est connecté et s'il passe à "/" il doit être rendu contrôleur. Si ce n'est pas connecté, il devrait être rendu page_destination contrôleurRails routage page d'acheminement et concevoir
"/" & & user_signed_in? --->contrôleur maison
"/" & & user_not_logged --->page_destination contrôleur
J'utilise Rails 4 et Concevoir
ApplicationControllerclass ApplicationController < ActionController::Base
before_filter :authenticate_user!
end
routes.rb
get "landing_page/index"
root 'home#index', :as => :home
Comment je pouvais garder un "before_filter" dans ApplicationControl qui fonctionnent dans tous les contrôleurs sauf contrôleur "page_destination"?
Mise à jour
Si je vais à «/en/page_destination » il rend contrôleur page_destination correctement (déconnecté), mais si je vais à «/» il me rediriger vers «/utilisateurs/sign_in »
class LandingPageController < ApplicationController
skip_before_action :authenticate_user!
def index
end
end
class ApplicationController < ActionController::Base
before_action :authenticate_user!
end
routes.rb
root 'landing_page#index'
Cela ne signifie-t-il pas que, que vous soyez connecté ou non, la page de destination sera toujours affichée si vous essayez d'accéder à '/'? N'avez-vous pas voulu définir la racine à HomeController # index (ou quelque chose d'autre qui serait alors check_auth) – rpbaltazar