Ruby on rails 设计的经验证和未经验证的路由

Ruby on rails 设计的经验证和未经验证的路由,ruby-on-rails,ruby,devise,ruby-on-rails-5,Ruby On Rails,Ruby,Devise,Ruby On Rails 5,我已经使用Rails 5创建了一个应用程序。我的用户身份验证由Desive gem管理 我需要为经过身份验证和未经身份验证的用户提供不同的根路径。我遵循给出的提示。一切看起来都很简单,但在登录后,我仍然会被重定向到正常的根路径,例如单击我的“主页”链接 这是我的route.rb代码: authenticated :user do root to: 'api/v1/private/reporting/dashboards/summaries#index', as: :authenticated

我已经使用Rails 5创建了一个应用程序。我的用户身份验证由Desive gem管理

我需要为经过身份验证和未经身份验证的用户提供不同的根路径。我遵循给出的提示。一切看起来都很简单,但在登录后,我仍然会被重定向到正常的根路径,例如单击我的“主页”链接

这是我的route.rb代码:

authenticated :user do
  root to: 'api/v1/private/reporting/dashboards/summaries#index', as: :authenticated_root
end
root to: 'landing#index', as: :root
以下是我的导航栏中“主页”链接的代码:

- if api_v1_public_members_user_signed_in?
  = link_to 'Home', authenticated_root_path
- else 
  = link_to 'Home', root_path
有人能发现我可能丢失的东西吗


**仅供参考,“api\u v1\u public\u members\u user\u signed\u in?”方法可能看起来不太熟悉,但这是必需的,因为我正在为我的设备控制器命名空间。有关此操作的详细信息,请参阅。

尝试将经过身份验证的根路径和未经身份验证的根路径包装在
designe\u scope
下,并分别命名:

devise_scope :user do
  authenticated :user do
    root to: 'api/v1/private/reporting/dashboards/summaries#index', as: :authenticated_root
  end

  unauthenticated :user do
    root to: 'landing#index', as: :unauthenticated_root
  end
end
然后,将视图更改为:

- if api_v1_public_members_user_signed_in?
  = link_to 'Home', authenticated_root_path
- else 
  = link_to 'Home', unauthenticated_root_path

也似乎没有预期的效果。我仍然被重定向到“未经验证的根路径”@PaulFioravanti