0

Rails アプリケーションでセッションの有効期限が切れた後にログイン ページをレンダリングしたいと考えています。認証にgemは使用しませんでした。助けていただければ幸いです。以下は私のアプリケーションコントローラーです。

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  before_filter :session_expiry, :except => [:login]

  def current_user
    if session[:user_id].nil?
      false
    else
      true
    end
  end
  helper_method :current_user 

  def session_expiry
    expire_time = session[:expires_at] || Time.now
    @time_left = (expire_time - Time.now).to_i
    unless @time_left > 0
      reset_session
      flash[:error] = 'Session Timeout!'
    end
  end
end
4

1 に答える 1

1

おそらく、別のメソッドを application_controller.js に定義して、セッションの有効期限が切れているかどうかを確認し、その場合はリダイレクトする必要があります。

def redirect_to_login_if_session_expire
  redirect_to(login_path) if session[:user_id].nil?
end

:user_id可能性のある場所current_user.id

于 2013-06-17T07:27:17.817 に答える