2009-07-30 5 views
9

J'essaie d'obtenir la racine de mon application pour acheminer vers un contrôleur par défaut. D'après ce que je lis, cela devrait être possible avec quelque chose comme ça au fond de mon dossier routes.rb:Ruby on Rails map.root ne semble pas fonctionner

map.root :controller => 'albums' 

ou peut-être même:

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

Cependant, lorsque je tente de naviguer http://myhost:8000/, Je vois juste la page d'accueil des rails. Je redémarrer l'application avec la commande suivante après avoir fait le changement à routes.rb et avant de le tester:

sudo mongrel_cluster_ctl restart 

Voici quelques environnement plus peut-être pertinent d'informations:

% rails -v 
Rails 2.3.3 

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

Je suis sûr que je Je manque quelque chose de simple, mais je ne vois pas ce que c'est. Des idées?

Répondre

16

Avez-vous supprimé la page public/index.html statique créée par Rails? Si cela est toujours dans votre application, elle s'affichera à la place de la page racine que vous avez définie dans les itinéraires.

3
map.root :controller => 'albums' 

Est la syntaxe correcte.

Quelques choses à essayer:

  • supprimer index.html du public.
  • Regardez la sortie des « routes râteau », voyez-vous quelque chose le long des lignes de:
 
root /{:controller=>"albums", :action=>"index"} 
  • Êtes-vous à 100% que le groupe de droite est en cours de redémarrage: essayez d'exécuter script/serveur et en accédant à la racine sur le port 3000
1

Routes à la fin de routes.rb sont les derniers à se habituer, donc vous pouvez essayer avec « map.root... » en haut de votre routes.rb

13

Supprimez le fichier public/index.html.

+0

Merci, je savais que ça devait être quelque chose de simple! – pkaeding

0

Je me grattais la tête depuis un moment maintenant. La suppression du fichier public/index.html a causé le problème. Merci!

0

J'ai un problème légèrement différent. J'ai mis en place une entrée map.root et ça marche avec mongrel. Cependant, lorsque j'utilise apache2 comme serveur web avec le module Passenger, j'obtiens une erreur '500'. Si je réinstalle mon /public/index.html alors cela fonctionne sous apache2.

J'ai essayé d'aller directement:

http: /// home/index

Cela me donne aussi la même erreur '500'.

S'il vous plaît quelqu'un peut-il me dire ce que je fais mal?

Salut

J'ai trouvé quelqu'un d'autre qui avait eu le même problème. Il s'avère que Passenger fonctionne en mode production alors que mon application était en mode développement.

Je mis Passenger en mode de développement en ajoutant la ligne suivante à mon fichier hôtes virtuels

RailsEnv = développement

Restarted Apache et tout cela fonctionne !!

Ouf!

Purvez

+2

Si vous avez un nouveau problème, postez-le comme nouvelle question. Vous pouvez poser une nouvelle question en cliquant sur le bouton «Poser une question» dans le coin supérieur droit de la page, et si vous trouvez une réponse à une question (même si c'est votre propre question, vous pouvez l'afficher comme réponse). plutôt que d'éditer votre question originale. – pkaeding

Questions connexes