2012-05-15 2 views
1

Я установка моих маршрутов в пространство имен, так что выглядетьПлохая ошибка маршрутизации или рельсов?

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

Все отлично работают в режиме разработки, но полностью сломан в производстве

I 'Получение No route matches {:controller=>"users/home"} при попытке доступа к контроллерам сеансов/регистрации (пользователи/сеансы/новые)

root_path в моем заголовке попытается получить home контроллер в users имен

заранее спасибо

+0

Можете ли вы запустить 'bundle exec rake routes? grep root 'в производстве? –

ответ

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

0

Существует нет home controller в пространстве имен пользователей, в пространстве имен пользователей есть контроллер профиля.

Вам нужно users_root_path, чтобы перейти к «users/profile # index».

Но вы правы, я бы ожидал, что root_path перейдет к «home # index».

Смежные вопросы