2009-07-30 24 views
9

Estoy intentando que la raíz de mi aplicación se dirija a un controlador predeterminado. Por lo que leo, esto debería ser posible con algo como esto en el fondo de mi archivo routes.rb:Ruby on Rails map.root no parece estar funcionando

map.root :controller => 'albums' 

o quizás incluso:

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

Sin embargo, cuando intento navegar a http://myhost:8000/, Acabo de ver la página de bienvenida de los carriles. Estoy reiniciar la aplicación con el siguiente comando después de hacer el cambio a routes.rb y antes de probarlo:

sudo mongrel_cluster_ctl restart 

Aquí hay alguna información más pertinente, posiblemente, el medio ambiente:

% rails -v 
Rails 2.3.3 

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

Estoy seguro de que' Me falta algo simple, pero no puedo ver qué es. ¿Algunas ideas?

Respuesta

16

¿Ha borrado la página estática public/index.html que crea Rails? Si todavía está en su aplicación, se mostrará en lugar de la página raíz que definió en las rutas.

3
map.root :controller => 'albums' 

Es la sintaxis correcta.

Algunas cosas para probar:

  • eliminar index.html del público.
  • mirada a la salida de "rutas rastrillo", ¿ves algo en la línea de:
 
root /{:controller=>"albums", :action=>"index"} 
  • ¿Estás 100% seguro de que el grupo de la derecha se está reiniciando: intente ejecutar script/servidor y navegando a arraigar en el puerto 3000
1

Rutas al final de routes.rb son los últimos en acostumbrarse, por lo tanto, es posible que desee probar con 'map.root...' en la parte superior de su routes.rb

13

Elimina el archivo public/index.html.

+0

¡Gracias, sabía que tenía que ser algo simple! – pkaeding

0

Me estaba rascando la cabeza por un tiempo. Eliminar el archivo public/index.html me falló. Gracias!

0

Tengo un problema ligeramente diferente. Configuré una entrada map.root y funciona con mongrel. Sin embargo, cuando uso apache2 como servidor web con el módulo Passenger obtengo un error de '500'. Si reinstalo mi /public/index.html, entonces funciona bajo apache2.

He tratado de ir directamente como:

http: /// home/index

Esto también me da el mismo '500' error.

¿Alguien puede decirme qué estoy haciendo mal?

Hola

me encontré con otra persona que había tenido el mismo problema. Resulta que Passenger se está ejecutando en modo de producción mientras mi aplicación estaba en modo de desarrollo.

puse de pasajeros en el modo de desarrollo añadiendo la siguiente línea a mis anfitriones virtuales presentar

RailsEnv = desarrollo

reiniciado Apache y funciona todo !!

¡Uf!

Purvez

+2

Si tiene un problema nuevo, publíquelo como una nueva pregunta. Puede hacer una nueva pregunta haciendo clic en el botón "Preguntar" en la esquina superior derecha de la página. Además, si encuentra una respuesta a una pregunta (incluso si es su propia pregunta, puede publicarla como respuesta , en lugar de editar tu pregunta original. – pkaeding