【问题标题】:Rails 4 + Devise: set default root route for authenticated usersRails 4 + Devise:为经过身份验证的用户设置默认根路由
【发布时间】:2015-12-01 04:12:38
【问题描述】:

我做了一些研究,发现这个问题已经在不同的地方多次解决:

我尝试按照上面链接中给出的示例,并在我的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用户引导到网站的常规home页面,而authenticated用户将转到他们的仪表板,在应用程序内部,即calendars#index路由,定义如下我的路线:

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

但是,当我以用户身份登录并访问 http://localhost:3000/ 时,我一直登陆网站的常规 home 页面,而不是应用内的用户仪表板。

我做错了什么?

【问题讨论】:

  • 在您包含的第一个链接中,我会尝试包装未经身份验证的 root 路由。
  • 谢谢,确实有效。随时提交此作为答案,我将非常乐意接受。

标签: ruby-on-rails ruby-on-rails-4 authentication devise rails-routing


【解决方案1】:

更改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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多