私のウェブサイトは facebook.com と同じように動作するはずです。ユーザーがログに記録されていて、「/」になっている場合は、ホームコントローラーとしてレンダリングする必要があります。ログに記録されていない場合は、landing_pageコントローラーをレンダリングする必要があります
"/ " && user_signed_in? ---> ホームコントローラー
"/" && user_not_logged ---> ランディング ページコントローラ
Rails 4 と Devise を使用しています
アプリケーションコントローラー
class ApplicationController < ActionController::Base
before_filter :authenticate_user!
end
Routes.rb
get "landing_page/index"
root 'home#index', :as => :home
「landing_page」コントローラーを除くすべてのコントローラーで実行される「before_filter」を ApplicationControl に保持するにはどうすればよいですか?
アップデート
「/en/landing_page」に移動すると、landing_page コントローラーが正しくレンダリングされます (ログアウトされます)。「/」に移動すると、「/users/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'