0

これに従って、 authlogicで動作するようにアプリの設定を完了しました。

始める前に、私はすでに基本的なCRUD機能を備えた製品カタログを作成していました。

今のところ、ユーザーがすでにログインしている場合にのみ製品カタログにアクセスできるようにしたいので、基本的にユーザーがログインしていない場合は、ログインページに移動する必要があります。ログインしている場合は、localhost:3000でアクセスできます。製品カタログへ....m本当に混乱しています...ログアウトするために何をすべきかさえわかりません...

代わりに、現在、ログインしてlocalhost:3000に移動すると、 http:// localhost:3000/accountにリダイレクトされます。

助けてください。

また、ログイン中に製品カタログにアクセスすると、ページの上部にこのメッセージが表示されることにも気づきました。

「このページにアクセスするには、ログアウトする必要があります」

4

1 に答える 1

2

ナチョ、 http://railscasts.com/episodes/160-authlogicを見ることをお勧めします

それはあなたのすべての質問に答える必要があります。

私の頭の上から...

まだルートを設定していない場合は、ルートの設定から始めます。

  map.login 'login', :controller => 'user_sessions', :action => 'new'

map.logout 'logout', :controller => 'user_sessions', :action => 'destroy'

次に、アプリケーション コントローラーで次の操作を行います。

  before_filter :authenticate, :except => [:login, :logout, :destroy, :index, :new]

  private #--------------------

  def authenticate
    unless current_user
      flash[:notice] = "You must be loged in first"
      redirect_to(login_url)
      return false
    end
  end

  def current_user_session
    return @current_user_session if defined?(@current_user_session)
    @current_user_session = UserSession.find
  end

  def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.record
  end

これにより、上記の問題を解決できるようになります。ユーザーがログインしていない場合は、ログイン ページにリダイレクトされます。また、ログアウトするには、logout_url (localhost:3000/logout) を指すだけです。

于 2009-11-10T13:04:11.287 に答える