5

サイトのどの部分にも進む前に、すべてのユーザーがログインする必要があるアプリケーション コントローラーの簡単なメソッドが必要です。認証にはDeviseを使用しています。

私は試した:

class ApplicationController < ActionController::Base
  ...
  unless user_signed_in?
    redirect_to login_path
  end
  ...
end

これにより全員が正常にリダイレクトされますが、問題は、新しいユーザー セッションを作成するために必要なポスト リクエストも妨げられることです。

私の質問は、ログイン ビューとログインのポスト リクエストを除くすべてのリクエストをブロックするにはどうすればよいでしょうか?

4

1 に答える 1

9

Deviseを使えば簡単です。before_filter :authenticate_user!ApplicationControllerに追加するだけです。

これはすべてDevise wikiで詳しく説明されています - https://github.com/plataformatec/devise

Rails 4.2+ では、before_action :authenticate_user!が推奨されることに注意してください。

于 2011-07-13T15:49:39.453 に答える