отправлять ошибки в «/ login / errors», если при входе в систему происходит сбой, вместо перехода к пути «/ user_sessions» - PullRequest
2 голосов
/ 01 февраля 2012

Я создаю приложение с ruby ​​на рельсах 3.1. У меня правильно отображается логин по ссылке "/ логин". Когда возникает ошибка, я бы хотел перейти на «логин / ошибки» вместо «/user_sessions".

Для информации я использую authlogic

Используемая модель называется "user_session".

в route.rb:

resources :user_sessions, :only => [:create, :destroy]
match 'login' => 'user_sessions#new'
root :to => redirect("/login")

в user_sessions_controller.rb:

    def new
      @user_session = UserSession.new
      respond_to do |format|
        format.html # new.html.erb
      end
    end

    def create
      @user_session = UserSession.new(params[:user_session])
      respond_to do |format|
        if @user_session.save
          user = User.first(:conditions => {:email=> @user_session.email})
          format.html { redirect_to :controller => 'teams', :action => 'show', :id => user.team_id }
        else
          format.html { render :action => "new" }
        end
      end
    end

Я пробовал разные вещи без успеха.

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

1 Ответ

0 голосов
/ 01 февраля 2012

простое решение:

  1. match 'login' => 'user_sessions#new', as: :login_page

  2. redirect_to login_page_path если сохранение не удалось.

...