在使用Devise的rails應用程序中,當無簽名用戶訪問root時,他們被重定向到/ users/sign_in而不是根路徑;根路徑可以在登錄用戶身上正常工作。同樣的事情發生在我點擊navbar的標誌,這是一個與根目錄home_path的鏈接,我被重定向到/ users/sign_in就像訪問根目錄時一樣。這裏是我的路線:在使用Devise的rails應用程序中,當一個未簽名的用戶訪問root時,他們被重定向到/ users/sign_in而不是根路徑?
get 'home' => 'static_pages#home', as: "home"
devise_for :users, :controllers => { registrations: 'registrations' }
root 'static_pages#home'
說帶我到/用戶/ sign_in代替home_path/root_path在導航欄模板中的鏈接:
<a class="navbar-brand" href="<%= home_path %>">Brand</a>
我在前端採用了棱角分明,所以這是什麼路徑看起來在用戶訪問根目錄時簽署的,如:
http://localhost:3000/home#/
如果,如果我手動更改URL到/ home#/或/家,我仍然重定向到用戶/ sign_in。
我想不出任何其他的信息。這是Devise的默認行爲,我需要重寫?似乎無法在文檔中找到有關自動重定向的內容。謝謝您的幫助。
應用控制器:
class ApplicationController < ActionController::Base
before_action :authenticate_user!
protect_from_forgery with: :exception
def after_sign_in_path_for(user)
home_path
end
end
static_pages控制器:
class StaticPagesController < ApplicationController
def home
end
end
你可以包括你的ApplicationController和/或StaticPagesController? – michaeldever
是的,我只是更新了問題。 – srlrs20020