слишком много перенаправлений при создании нового сеанса - PullRequest
1 голос
/ 16 ноября 2011

пользователь моего сайта должен сначала войти в систему, чтобы увидеть каждую его страницу. Мое текущее решение приводит к появлению в браузере сообщения об ошибке «слишком много перенаправлений», я подозреваю, что что-то идет не так, поэтому оно бесконечно идет вперед и назад, но где?

В контроллере приложения у меня это:

before_filter :authenticate_user

def authenticate_user
  unless session[:user_id]
    flash[:alert] = I18n.t :session_unauthenticated
    redirect_to login_path
  end
end

«login_path» переходит к «session / new», который выглядит так:

    def new
      user = User.find_by_email(params[:email])
      if user && user.authenticate(params[:password])
        session[:user_id] = user.id
        redirect_to root_url, :notice => I18n.t(:session_logged_in)
      else
        flash.now.alert = I18n.t(:session_invalid)
        render "new"
      end  
    end

Спасибо за вашу помощь!

1 Ответ

2 голосов
/ 16 ноября 2011

Ваш before_filter активен для каждого действия (так как он в ApplicationController) и, следовательно, также для вашего действия sessions#new. Это означает, что вы даже не можете войти в действие входа в систему. Я предлагаю вам поставить before_filter во все необходимые контроллеры и указать действия с before_filter :authenticate_user, :except => [:new, :create, :destroy] или чем угодно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...