簡體   English   中英

Rails 4 + Devise:為經過身份驗證的用戶設置默認的根路由

[英]Rails 4 + Devise: set default root route for authenticated users

我進行了一些研究,發現這個問題已經在不同的地方被解決過幾次了:

我嘗試遵循上面鏈接中給出的示例,並在routes.rb文件中提出了以下解決方案:

root to: 'pages#home'

devise_for :users, :path => 'account', controllers: { registrations: "registrations", confirmations: "confirmations" }

authenticated :user do
  root 'calendars#index', as: :authenticated_root
end

此處的目標是將unauthenticated authenticated用戶定向到網站的常規home ,而經過authenticated用戶將進入其在應用程序內的儀表板,即calendars#index路由,在我的路由中定義如下:

calendars GET    /calendars(.:format)                        calendars#index

但是,當我以用戶身份登錄並訪問http://localhost:3000/ ,我會繼續登陸網站的常規home ,而不是應用程序內用戶的儀表板。

我究竟做錯了什么?

更改routes.rb以便包裝未經身份驗證的root路由,就像經過身份驗證的root路由一樣:

devise_for :users, :path => 'account', controllers: { registrations: "registrations", confirmations: "confirmations" }

authenticated :user do
  root 'calendars#index', as: :authenticated_root
end

unauthenticated :user do
  root 'pages#home', as: :unauthenticated_root
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM