2010-12-18 16 views
0

So heute habe ich mit RoR zum ersten Mal mit dem Buch "Rails für PHP-Entwickler" gearbeitet. Ich folge dem Tutorial dort.Ruby on Rails Neuling: Wie bekomme ich anständige Fehlermeldungen?

Ich habe ein Projekt erstellt, mit einem Modell Subscriber und einem Controller Subscribers, der eine Methode create hat. Dann startete ich ruby script/server, um Mongrel zu starten.

Jetzt sagt das Buch, dass, wenn ich zu http://localhost:3000/subscribers/create gehe, ich einen Fehler erhalten sollte, weil es (noch) keine Vorlage für diese Aktion gibt. Das Buch zeigt diese Fehlermeldung:

Vorlage fehlt
Fehlende Vorlage Abonnenten/create.html.erb im Hinblick Pfad/Users/derek/work/newsletter/app/views

A nette beschreibende Fehlermeldung, wirklich hilfreich. Aber die Fehler, die ich bekommen ist:

Leider aber etwas schief gelaufen ist.
Wir wurden über dieses Problem informiert und wir werden es in Kürze ansehen.

Dieser Fehler ist überhaupt nicht hilfreich. Ich vermute, dass es mit der Tatsache zu tun hat, dass das Buch WEBrick verwendet und ich Mongrel verwende. Aber ich nehme an, es sollte möglich sein, mehr beschreibende Fehler zu bekommen, oder? Es scheint ziemlich schmerzhaft, sich mit solchen Fehlern zu entwickeln.

+0

"Wie bekomme ich eine anständige Fehlermeldung?" Wie? Setze anständige Fehler ein !? :-) –

Antwort

1

Es sieht so aus, als ob einige Ihrer Rails-Installation semi borked sind. Möglicherweise fehlt das mysql-Juwel oder der mysql-ActiveRecord-Adapter ist möglicherweise nicht korrekt konfiguriert.

Verwendung gem Liste die Edelsteine ​​sehen Sie

installiert haben
$ sudo gem list 

Sie den Edelstein-Befehl installieren können installieren oder zu aktualisieren gems

$ sudo gem install rails mysql 

Sie wollen in der Regel Edelsteine ​​mit sudo installieren (wie root)

Es tut mir leid, dass Ihr erster Versuch bei Rails nicht glatt gegangen ist, vertrauen Sie mir, es ist ein extrem leistungsfähiges Framework. Strick damit!

+0

Das mysql-Juwel wurde tatsächlich nicht richtig installiert. Ich fand ein hervorragendes Tutorial, wie man das hier beheben kann: http://techliberty.blogspot.com/2009/12/dealing-with-rake-aborted-uninitialized.html – Rits

+0

HINWEIS: die neueste Version von Schienen ist 3 etwas und Ihre Buch verwendet wahrscheinlich 2.3.5 oder da drüben. Es gibt große Unterschiede. Verwendung sudo gem $ Schienen installieren -v 2.3.5 = eine bestimmte Version Sie vielleicht eine beliebige Version Sie wollen nur für den Fall $ sudo gem uninstall Schienen zu installieren deinstallieren und es wird Ihnen eine geben interaktives Menü. HINWEIS: Die Flags --no-ri und --no-rdoc sorgen dafür, dass es schneller geht. z.B. sudo gem install rails --no-ri --no-rdoc – EnabrenTane

0

Sie haben wahrscheinlich vergessen, die Datenbank einzurichten. Sie können log/development.log für weitere Details überprüfen.

+0

Ich habe die Datenbank eingerichtet. Das Entwicklungsprotokoll sagt dies: 'Status: 500 Interner Server Fehler nicht initialisierte Konstante MysqlCompat :: MysqlRes' – Rits

+0

Und was passiert, wenn Sie Rake db laufen: migrieren? – daLizard

+0

'Rake abgebrochen! nicht initialisierte Konstante MysqlCompat :: MysqlRes (Siehe vollständige Ablaufverfolgung, indem Task mit --trace ausgeführt wird) ' – Rits

0

Sie erhalten nur die erste Nachricht, wenn Sie im Entwicklungsmodus ausgeführt werden.

+0

Wie komme ich in den Entwicklungsmodus? – Rits

+0

Ich denke, ich bin bereits im Entwicklungsmodus, weil ich Nachrichten in development.log bekomme aber nog in test.log und production.log – Rits

+0

Skript/Server standardmäßig auf Entwicklung. die Schienen 3 Konvention ist Schienen Server aber tut das gleiche. Dein Buch lehrt wahrscheinlich Rails 2.3.x – EnabrenTane