помогите с аутлогикой - PullRequest
0 голосов
/ 10 ноября 2009

Я только что закончил настройку своего приложения для работы с authlogic, следуя это точно

перед началом я уже создал каталог продуктов с основными функциями CRUD.

Сейчас я хочу, чтобы каталог товаров был доступен только в том случае, если пользователь уже вошел в систему .. поэтому, если пользователь не вошел в систему, он должен перейти на страницу входа в систему ... если он есть, то localhost: 3000 надо отвести его в каталог товаров .... я действительно растерялся ... я даже не знаю что делать чтобы выйти ...

Вместо этого, прямо сейчас, войдя в систему и перейдя на localhost: 3000 перенаправляет меня на http://localhost:3000/account

помогите пожалуйста.

Я также заметил, что если я захожу в каталог товаров во время входа в систему, я получаю это сообщение вверху страницы

"Вы должны выйти из системы, чтобы получить доступ к этому страница "

1 Ответ

2 голосов
/ 10 ноября 2009

Начо, позвольте мне предложить вам посмотреть 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)

...