2012-02-01 6 views
2

Я создаю приложение с рубинами на рейках 3.1. У меня есть форма входа в систему, правильно отображаемая на URL-адресе "/ login". Когда возникает ошибка, я хотел бы перейти к «login/errors» вместо «/ user_sessions».отправлять ошибки в «/ login/errors» при сбое регистрации, а не идти по пути «/ 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 

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

Благодарим за помощь.

ответ

0

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

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

  2. redirect_to login_page_path если экономия была не в состоянии.

+0

Это тоже первое, что я пробовал. он правильно перенаправляется на страницу входа, но он не передает ошибки, содержащиеся в @user_session. Поэтому я возвращаюсь на ту же страницу без какой-либо информации, чтобы помочь. – lgx