Thi*_*ent 2 authentication ruby-on-rails rails-routing devise ruby-on-rails-4
我做了一些研究,发现这个问题已经在不同的地方多次解决了:
我尝试按照上面链接中给出的示例进行操作,并在我的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
Run Code Online (Sandbox Code Playgroud)
这里的目标是将unauthenticated用户引导到home网站的常规页面,而authenticated用户将转到他们的仪表板,在应用程序内,即calendars#index路线,在我的路线中定义如下:
calendars GET /calendars(.:format) calendars#index
Run Code Online (Sandbox Code Playgroud)
但是,当我以用户身份登录并访问 时http://localhost:3000/,我一直登陆home网站的常规页面,而不是应用程序内的用户仪表板。
我究竟做错了什么?
更改routes.rb以便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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1892 次 |
| 最近记录: |