糟糕的路由或铁路错误?

时间:2012-05-15 11:24:58

标签: ruby-on-rails routes dev-to-production

我已将路由设置为命名空间,因此它看起来像

root to: "home#index"

namespace :users do
  root to: "profile#index"
  resources :registrations
  resources :sessions
end

namespace :admin do
  root to: "base#index"
end

rake routes |grep root
                root          /                               home#index
          admin_root          /admin(.:format)                admin/base#index
          users_root          /users(.:format)                users/profile#index

在我的标题导航中,我有= link_to "home", root_path

一切在开发模式下都很好用,但在生产中完全破解

我在尝试访问会话/注册控制器(用户/会话/新)时收到No route matches {:controller=>"users/home"}

我标题中的root_path尝试在home命名空间中获取users控制器

提前致谢

2 个答案:

答案 0 :(得分:0)

区分每个的根路径,并尝试

root to: "home#index" , :as => home_root

namespace :users do
  root to: "profile#index" , :as => users_root
  resources :registrations
  resources :sessions
end

namespace :admin do
  root to: "base#index" , :as => admin_root
end

使用路径如:home_root_path,users_root_path,admin_root_path

答案 1 :(得分:0)

用户名称空间中没有家庭控制器,用户名称空间中有一个配置文件控制器。

您需要users_root_path才能访问“users / profile #index”。

但是你是对的,我希望root_path可以转到“home #index”。