Ich erstelle eine Twitter-Anwendung, und jedes Mal, wenn der Benutzer die Seite aktualisiert, werden die neuesten Nachrichten von Twitter neu geladen und in der lokalen Datenbank gespeichert, sofern sie nicht bereits zuvor erstellt wurden. Dies funktioniert gut in der Entwicklungsumgebung (Datenbank: sqlite3), aber in der Produktionsumgebung (mysql) erstellt es immer wieder Nachrichten, auch wenn sie bereits erstellt wurden.
Die Erstellung einer Nachricht wird anhand der twitter_id überprüft, die jede Nachricht hat:
msg = Message.find_by_twitter_id(message_hash['id'].to_i)
if msg.nil?
# creates new message from message_hash (and possibly new user too)
end
msg.save
Offensichtlich ist es in der Produktionsumgebung aus irgendeinem Grund nicht möglich, die Nachrichten nach der Twitter-ID zu finden (wenn ich mir die Datenbank ansehe, hat sie alle Attribute zuvor korrekt gespeichert).
Mit dieser langen Einführung, ich denke, meine wichtigste Frage ist, wie ich dies zu debuggen? (es sei denn, Sie haben bereits eine Antwort auf das Hauptproblem, natürlich :) Wenn ich in das production.log schaue, zeigt es nur etwas wie:
Processing MainPageController#feeds (for 91.154.7.200 at 2010-01-16 14:35:36) [GET]
Rendering template within layouts/application
Rendering main_page/feeds
Completed in 9774ms (View: 164, DB: 874) | 200 OK [http://www.tweets.vidious.net/]
...aber nicht die Datenbankabfragen, logger.debug-Texte oder irgendetwas, das mir helfen könnte, das Problem zu finden.