2012-10-12 22 views
5

Ho 2 controller:Rails percorso: definire radice dello spazio dei nomi

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

e la mia routes.rb assomiglia a questo:

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

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

ma durante la mia visita /mobile, è comunque Indice di resa pagina del primo controller, anche provato questo:

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

ma mi sta dando errore: uninitialized constant Mobile::Mobile Voglio rendere la pagina indice del secondo controller, come posso farlo?

Modifica

Entrando/cellulare Voglio rendere i file si trovano qui:

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

ma è lacerante file qui:

app/ 
    views/ 
     /posts 
      index.html.erb 
+0

Stai andando bene, basta controllare che la classe 'controller/mobile/posts_controller.rb' sia come:' class Mobile :: PostsController jan267

risposta

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

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

invece di

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

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

Questa è una soluzione molto migliore della risposta accettata! – ReggieB

8
namespace :mobile do 
    get "/" => "posts#index" 
    resources :posts 
end 

using namespace già antepone cellulare ai nomi dei controller all'interno di quel blocco.

+2

non funziona –

+1

qual è l'errore? puoi darmi un completo 'routes.rb'? – shime

+1

la route completa.rb è in questione –

1
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 funziona.

Problemi correlati