0

私は標準的なデバイスの実装を持っていますが、セッションが期限切れになった場合、他のモデルではリダイレクトされないようで、ユーザーにエラー メッセージが表示されます。

たとえば、ユーザー プロファイル ページでログインしていない場合、current_user が存在しないためエラーが表示されます。

承認するように各モデルに設定しますか。または、より良い解決策として、アプリコントローラーで設定して、アプリケーション全体で実行し、必要に応じて公開ページを設定することはできますか?

4

2 に答える 2

0

特定のコントローラーにユーザーがログインしているかどうかを確認させたい場合は、Deviseのauthenticate_userを使用します。働き。以下の例を参照してください

class StuffController < ApplicationController
  before_filter :authenticate_user!
  def index
    ..... more implementation
  end
end

ユーザーがログインしていない場合は、ログインフォームにリダイレクトされ、ログインに成功すると必要なページにリダイレクトされます。

于 2013-02-07T13:53:07.477 に答える
0

などの前フィルタを使用しbefore_filter :authenticate_user!ます。これをアプリケーション コントローラーに配置します。authenticate_user!devise ヘルパーなので、カスタム動作が必要な場合は、メソッドをオーバーロードするか、user_signed_in?ヘルパー メソッドを使用して独自のフィルターを単純に記述できます。

于 2013-02-07T13:53:55.870 に答える