2009-08-27 4 views
6

Ein aktuelles Projekt, hatte ich ein paar Ansichten mit Code wie folgt:Warum ist Array.count im Entwicklungsmodus verfügbar, aber nicht in der Produktion?

<% if @users.count == 0 %> 

Das perfekt im Entwicklungsmodus gearbeitet ... Ich kann es Modus prod ausgerollt und es explodierte, dass Zählung sagen war kein gültige Methode von Array. Ich habe jede Instanz geändert, um stattdessen Array # Länge zu verwenden und es scheint zu funktionieren.

1) Was ist der Grund für diesen Unterschied im Verhalten?

2) Gibt es noch andere aufregende Unterschiede zwischen Dev- und Prod-Modi, auf die ich achten sollte?

MORAL: Stellen Sie sicher, dass Ihre Produktions-Hosting-Umgebung die gleiche Version von Ruby verwendet wie Ihre lokale Entwicklungsumgebung. :)

Danke

Tom

Antwort

8

Die count Methode in Ruby 1.9 nur verfügbar ist, und oben. Ich empfehle Ihnen, die gleiche Version von Ruby wie Ihren Server zu verwenden, um Probleme wie diese zu vermeiden - vieles hat sich in 1.9 geändert.

+0

Interessant. Ich habe nicht einmal daran gedacht, dass meine Entwicklungsumgebung eine andere Version von Ruby als meine Hosting-Umgebung hat. Ich fühle mich jetzt albern. Kann ich diese Frage löschen? ;) +1 – cakeforcerberus

+2

Ich empfehle es nicht. Jemand anderes könnte das gleiche Problem haben. Ich kannte die Antwort nur, weil ich vor ein paar Monaten ein ähnliches Problem hatte. –

+0

Ich war ziemlich sicher, dass dies in 1.8 eingeführt wurde, irgendwo ... das hat mich irgendwann gebissen, und ich arbeite nicht mit 1.9. –

0

omg, Bluehost hat Ruby 1.8.6 und jetzt funktioniert die Hälfte meiner Anwendung nicht. Meistens genau wegen dieses Problems, mit count.

+0

Ja, genau das ist mir passiert. Nur lokal entwickelt und auf Bluehost hochgeladen, um diese Diskrepanz zwischen der Version zu entdecken. Schmerzlich. – cakeforcerberus

Verwandte Themen