【问题标题】: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
    

    我不知道是否有办法让这个工作与设计一起工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多