2009-07-30 23 views
9

Sto cercando di ottenere il root della mia applicazione per il routing a un controller predefinito. Da quello che ho letto, questo dovrebbe essere possibile con qualcosa di simile alla fine del mio file routes.rb:Ruby on Rails map.root non sembra funzionare

map.root :controller => 'albums' 

o forse anche:

map.home '', :controller => 'albums' 

Tuttavia, quando provo la navigazione verso http://myhost:8000/, Vedo la pagina di benvenuto dei binari. Sto riavviare l'applicazione con il seguente comando dopo aver effettuato il passaggio a routes.rb e prima di provarla:

sudo mongrel_cluster_ctl restart 

Ecco qualche possibilmente pertinenti informazioni sull'ambiente:

% rails -v 
Rails 2.3.3 

% ruby -v 
ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux] 

Sono sicuro che' Mi manca qualcosa di semplice, ma non riesco a vedere cosa sia. Qualche idea?

risposta

16

Hai cancellato la pagina statica public/index.html creata da Rails? Se questo è ancora nella tua app, verrà mostrato al posto della pagina radice che hai definito nei percorsi.

3
map.root :controller => 'albums' 

È la sintassi corretta.

Un paio di cose da provare:

  • eliminare index.html dal pubblico.
  • Guardate l'output di "rake routes", vedi qualcosa sulla falsariga di:
 
root /{:controller=>"albums", :action=>"index"} 
  • Sei sicuro al 100% del cluster diritto viene riavviato: provare a eseguire lo script/server e la navigazione per sradicare sulla porta 3000
1

Itinerari alla fine del routes.rb sono gli ultimi a abituarsi, quindi si consiglia di provare con 'map.root...' nella parte superiore del vostro routes.rb

13

Elimina il file public/index.html.

+0

Grazie, sapevo che doveva essere qualcosa di semplice! – pkaeding

0

Mi stavo già grattando la testa da un po '. L'eliminazione del file public/index.html ha fatto il problema per me. Grazie!

0

Ho un problema leggermente diverso. Ho creato una voce map.root e funziona con il meticcio. Tuttavia, quando utilizzo apache2 come server Web con il modulo Passenger, viene visualizzato un errore "500". Se re-insto il mio /public/index.html allora funziona sotto apache2.

ho cercato di andare direttamente come:

http: /// home/index

Questo mi dà anche lo stesso errore '500'.

Per favore qualcuno può dirmi cosa sto facendo male?

Hi

ho trovato qualcun altro che aveva avuto lo stesso problema. Risulta che Passenger è in esecuzione in modalità di produzione mentre la mia app era in modalità di sviluppo.

ho messo passeggeri in modalità di sviluppo aggiungendo la seguente riga al mio host virtuali presentare

RailsEnv = sviluppo

riavviato Apache e tutto funziona !!

Phew!

Purvez

+2

Se hai un nuovo problema, pubblicalo come una nuova domanda. Puoi fare una nuova domanda facendo clic sul pulsante "Chiedi domanda" nell'angolo in alto a destra della pagina Inoltre, se trovi una risposta a una domanda (anche se è una tua domanda, puoi postarla come risposta , piuttosto che modificare la tua domanda originale. – pkaeding