gpt4 book ai didi

ruby-on-rails - Rails 3 w/Devise : How to set two separate homepages based on whether the user is authenticated or not?

转载 作者:行者123 更新时间:2023-12-04 05:00:12 26 4
gpt4 key购买 nike

我正在使用Rails 3和Devise创建一个应用程序,用户可以通过该应用程序到达网站,并显示一个包含登录名和注册表单的主页。该页面具有其自己的 Controller (“首页”),因此其路由为

root :to => "homepage#index"

如果用户已经登录,我想显示一个不同的主页。这将导致其根指向
root :to => "dashboard#index"

有没有一种在route.rb中具有条件路由的方法,该方法可以让我在将用户路由到这些主页之一之前检查用户是否已通过身份验证?

我尝试使用以下代码,但是如果我没有登录,devise会要求我登录,因此很明显只有第一个路由有效。
authenticate :user do
root :to => "dashboard#index"
end
root :to => "homepage#index"

另外,在两种情况下,我都希望URL都指向www.example.com,以便www.example.com/dashboard/index和www.example.com/homepage/index永远不会出现在浏览器中。

太感谢了 !!!

最佳答案

试试这个,虽然它特定于Warden/Devise。

root to: "dashboard#index", constraints: lambda { |r| r.env["warden"].authenticate? }
root to: "homepage#index"

关于ruby-on-rails - Rails 3 w/Devise : How to set two separate homepages based on whether the user is authenticated or not?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8888289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com