我正在使用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应用程序的根目录?任何帮助将非常感激。
答案 0 :(得分:2)
您可以指定成功登录后重定向到的路径,只需将其添加到应用程序控制器:
def after_sign_in_path_for(resource)
your_custom_path
end