【问题标题】:How to use multiple root route in rails 6?如何在 Rails 6 中使用多个根路由?
【发布时间】:2020-08-27 18:56:01
【问题描述】:
刚刚更新到 rails 6 并且遇到了条件根路由问题
devise_scope :user do
authenticated do
root to: 'users#show'
end
unauthenticated do
root to: 'visitors#index'
end
end
我试图检查访问者#index 中的登录用户并重定向到 users#show 但现在我有这个丑陋的 URL '/users/:id' 而不能访问 users#show使用干净的根 URL。
【问题讨论】:
标签:
ruby-on-rails
routes
ruby-on-rails-6
【解决方案1】:
就我而言,我可以通过添加 :as 参数来解决这个问题:
devise_scope :user do
authenticated do
root to: 'users#show'
end
unauthenticated do
root to: 'visitors#index', as: :visitors_url
end
end
我认为更改背后的原因是为了让 Rails 知道将root_url路由到哪里。
注意:我发现 answer on reddit 建议使用 namespace 会更干净。
namespace :visitors, path: nil do
root to: 'visitors#index'
end
我不知道是否有办法让这个工作与设计一起工作。