2009-07-30 5 views
9

Ich versuche, die Wurzel meiner Anwendung zu einem Standard-Controller zu routen. Von dem, was ich gelesen habe, sollte dies möglich sein, mit so etwas wie dies am unteren Rand meiner routes.rb Datei:Ruby on Rails map.root scheint nicht zu funktionieren

map.root :controller => 'albums' 

oder vielleicht sogar:

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

Allerdings, wenn ich versuche zu http://myhost:8000/ Navigation, Ich sehe nur die Willkommensseite der Rails. Ich bin die Anwendung mit dem folgenden Befehl neu zu starten, nachdem die Änderung routes.rb machen und bevor es zu testen:

sudo mongrel_cluster_ctl restart 

Hier sind einige weitere möglicherweise relevante Umweltinformationen:

% rails -v 
Rails 2.3.3 

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

Ich bin sicher, dass ich Ich vermisse etwas Einfaches, aber ich kann nicht sehen, was es ist. Irgendwelche Ideen?

Antwort

16

Haben Sie die statische Seite public/index.html gelöscht, die Rails erstellt? Wenn dies immer noch in Ihrer App ist, wird es anstelle der Root-Seite angezeigt, die Sie in den Routen definiert haben.

3
map.root :controller => 'albums' 

Ist die richtige Syntax.

Ein paar Dinge zu versuchen:

  • löschen index.html aus der Öffentlichkeit.
 
root /{:controller=>"albums", :action=>"index"} 
  • Sind Sie 100% sicher, dass der richtige Cluster neu gestartet wird: versuchen läuft script/server
  • Blick auf die Ausgabe von „Rake Routen“, tun Sie etwas entlang der Linien von sehen und die Navigation auf Port 3000
1

Routen am Ende routes.rb zu verankern sind die letzte zu gewöhnen, deshalb können Sie versuchen, mit ‚map.root...‘ am oberen Rand Ihres routes.rb

13

Löschen Sie die Datei public/index.html.

+0

Danke, ich wusste, es musste etwas Einfaches sein! – pkaeding

0

Ich kratzte mich schon seit einer Weile am Kopf. Löschen der Datei public/index.html hat den Fehler für mich gemacht. Danke!

0

Ich habe ein etwas anderes Problem. Ich habe einen map.root-Eintrag eingerichtet und es funktioniert mit Mongrel. Wenn ich jedoch Apache2 als Webserver mit Passenger-Modul benutze, bekomme ich einen '500'-Fehler. Wenn ich mein /public/index.html wieder installiere, funktioniert es unter apache2.

: http: gibt mir /// home/index

Dies auch gleich '500' Fehler

Ich habe direkt zu gehen versucht.

Kann mir bitte jemand sagen, was ich falsch mache?

Hallo

fand ich jemanden, hatte das gleiche Problem hatte. Es zeigt sich, dass Passenger im Produktionsmodus ausgeführt wird, während sich meine App im Entwicklungsmodus befand.

Ich habe Passagier in Entwicklungsmodus, indem Sie die folgende Zeile in meinem virtuellen Hosts

RailsEnv = Entwicklung

erneut gestartet Apache und alles funktioniert Datei hinzufügen !!

Puh!

Purvez

+2

Wenn Sie ein neues Problem haben, senden Sie es bitte als neue Frage. Sie können eine neue Frage stellen, indem Sie auf die Schaltfläche "Frage stellen" in der oberen rechten Ecke der Seite klicken. Wenn Sie eine Antwort auf eine Frage finden (auch wenn es Ihre eigene Frage ist, können Sie sie als Antwort posten) , anstatt Ihre ursprüngliche Frage zu bearbeiten. – pkaeding