当记录失败而不是转到路径“/ user_sessions”时,将错误发送到“/ login / errors”

时间:2012-02-01 18:22:30

标签: ruby-on-rails ruby-on-rails-3 routing authlogic rename

我正在使用ruby on rails 3.1构建应用程序。 我在网址“/ login”上正确显示了一个登录表单。发生错误时,我希望它转到“登录/错误”而不是“/ 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 :(得分:0)

简单的解决方案:

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

  2. redirect_to login_page_path如果保存失败。