Rails route: определение корня в пространство имен
у меня есть 2 контроллера:
app/
/controllers
posts_controllers.rb
/mobile
posts_controllers.rb
и мои маршруты.РБ выглядит так:
root :to => "posts#index"
resources :posts
namespace :mobile do
root :to => "posts#index"
resources :posts
end
но когда я посещаю /mobile
, это все равно рендеринг индексной страницы первого контроллера, также попробовал это:
namespace :mobile do
root :to => "mobile/posts#index"
resources :posts
end
но это дает мне ошибку: uninitialized constant Mobile::Mobile
Я хочу отобразить индексную страницу второго контроллера, как я могу это сделать ?
редактировать
введя / mobile я хочу, чтобы отрисовывать файлы, расположенные здесь:
app/
views/
/mobile
/posts
index.html.erb
но это разрывает файлы здесь:
app/
views/
/posts
index.html.erb
3 ответов
namespace :mobile do
root :to => "posts#index"
resources :posts
end
root :to => "posts#index"
resources :posts
вместо
root :to => "posts#index"
resources :posts
namespace :mobile do
root :to => "posts#index"
resources :posts
end
namespace :mobile do
get "/" => "posts#index"
resources :posts
end
использование пространства имен уже добавляет мобильный к именам контроллеров внутри этого блока.
Rails.application.routes.draw do
root to: 'front/homes#index'
namespace :front do
resources :homes
end
namespace :admin do
resources :interviews
end
resources :meetings do
resources :slides
end
end
на rails5 это работает.