authlogic - причина неудачного создания сеанса и отсутствие сообщений об ошибках (с помощью formtastic) - PullRequest
2 голосов
/ 12 января 2010

У меня есть 2 вопроса об authlogic:

1 - как найти причину неудачного создания сеанса (например, - не подтверждено, заблокировано, неверный проход и т. Д.), Чтобы использовать его в логике приложения (перенаправить на другую страницу для настройки или повторно ввести проход и т. Д.)?

2 - вопрос об интеграции formtastic и authlogic. Как показывать сообщения об ошибках при создании сеанса, когда логин и пароль НЕ предоставлены. Каждый раз, когда я отправляю пустую форму - никаких сообщений об ошибках нет (но form.error_messages показывает, что вы должны ввести логин и пароль), но если предоставлено одно из полей (логин или пароль) - все работает хорошо.

1 Ответ

2 голосов
/ 12 января 2010

1

Если вы следуете предложенному шаблону для URL входа в систему:

  def create
    @user_session = UserSession.new(params[:user_session])
    if @user_session.save
      redirect_to your_url
    else
      render :action => 'new'
    end
  end

Вариант @user_session будет доступен для вашего шаблона new. Вы можете получить доступ к любым ошибкам входа в систему с помощью @user_session.error_messages. Я считаю, что возвращает форматированный HTML, а не массив.

UPDATE

Согласно документам , ошибки Authlogic ведут себя точно так же, как активные записи, поэтому, чтобы отобразить логику контроллера, вы должны сделать что-то вроде

if @user_session.save
  # Normal flow
else
  if @user_session.errors.on(:password)
    # do something
  else
    # do something else
  end
end
...