8

I've got 2 controllers:

app/
   /controllers
      posts_controllers.rb
      /mobile
         posts_controllers.rb

and my routes.rb looks like this:

root :to => "posts#index"
resources :posts

namespace :mobile do
   root :to => "posts#index"
   resources :posts
end

but when i visit /mobile, it's anyway rendering index page of first controller, also tried this:

namespace :mobile do
   root :to => "mobile/posts#index"
   resources :posts
end

but it's giving me error: uninitialized constant Mobile::Mobile I want to render the index page of second controller, how can i do that ?

Edit

By entering /mobile i want to render files located here:

app/
   views/
       /mobile
          /posts
             index.html.erb

But it's rending files here:

app/
   views/
       /posts
          index.html.erb
Matthew Clark
  • 1,507
  • 16
  • 30
Said Kaldybaev
  • 8,060
  • 7
  • 32
  • 52
  • You are doing well, just check that you `controllers/mobile/posts_controller.rb` class is like: `class Mobile::PostsController < ApplicationController`. – jan267 Nov 05 '12 at 15:45

3 Answers3

24
namespace :mobile do
   root :to => "posts#index"
   resources :posts
end

root :to => "posts#index"
resources :posts

instead of

root :to => "posts#index"
resources :posts

namespace :mobile do
   root :to => "posts#index"
   resources :posts
end
mollyjane
  • 610
  • 1
  • 8
  • 20
8
namespace :mobile do
   get "/" => "posts#index"
   resources :posts
end

Using namespace already prepends mobile to the names of controllers inside that block.

shime
  • 8,005
  • 1
  • 27
  • 45
5
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

In rails5 it works.

EarlyZhao
  • 139
  • 2
  • 3