/ / Rails definisce il controller come root controller - ruby-on-rails, ruby, ruby-on-rails-3.1, routing

Rails definisce controller come root controller: ruby-on-rails, ruby, ruby-on-rails-3.1, routing

So che in Rails (3.2.2), posso inoltrare richieste a / con il seguente in routes.rb:

root :to => "main_pages#index"

Come posso rendere MainPages il controller predefinito per tutte le azioni dell'indice?

Ad esempio, se ho usato rails g controller per creare un nuovo controller chiamato "Foo" con azioni "ciao" e "ciao", Rails si dirigerebbe automaticamente myapp/foo/hi e myapp/foo/bye.

Come posso rendere MainPages il controller predefinito per le azioni index, quindi se creo un metodo in MainPages chiamato "about", Rails eseguirà il routing /about?

Quindi, dopo averlo instradato, dovrei collegarmi a queste nuove pagine con link_to o semplicemente usare un percorso diretto?

risposte:

1 per risposta № 1

Una rotta Rails predefinita è:

match ":controller(/:action(/:id))"

Potresti sostituirlo con il nome del tuo controller:

match "/:action(/:id)", :controller => "main_pages"