Ruby on Rails Devise登录必须登录两次

时间:2016-03-10 23:20:06

标签: ruby-on-rails ruby authentication devise routes

我正在使用Device进行身份验证。使用rails 4.1。我把它设置如下:

我项目的根目录定义为current_branch=$(git rev-parse --abbrev-ref HEAD) git checkout master && git pull && git checkout $current_branch && git rebase master 首次点击我的服务器时,它会转到网址root 'projects#index'。当我输入用户名和密码并单击登录时,将我重定向到相同的登录页面,其中的气泡表示已成功登录到顶部。当我再次单击登录时,它将转到路径错误:

/users/sign_in

的routes.rb

No route matches [PATCH] "/users/sign_in"

ApplicationController.rb

Rails.application.routes.draw do
    devise_for :users

    resources :projects do
      member do
        post 'base_images'
        get 'base_images'
      end
    end
    root 'projects#index'
end

user.rb

class ApplicationController < ActionController::Base
  # Prevent CSRF attacks by raising an exception.
  # For APIs, you may want to use :null_session instead.
  protect_from_forgery with: :exception
  before_action :authenticate_user!

end

如果您然后手动将网址更改为class User < ActiveRecord::Base # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable end ,则按预期方式工作。

登录后怎么回事,它不会重定向到我的rails应用程序的根目录?任何帮助将非常感激。

1 个答案:

答案 0 :(得分:2)

您可以指定成功登录后重定向到的路径,只需将其添加到应用程序控制器:

def after_sign_in_path_for(resource)
  your_custom_path
end