2009-08-27 17 views
6

Na ostatnim projekcie, miałem widoki para z kodem tak:Dlaczego Array.count jest dostępny w trybie deweloperskim, ale nie produkcyjnym?

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

To działało idealnie w trybie rozwoju ... Przewróciłam go do trybu prod i eksplodował, mówiąc, że licznik nie był poprawna metoda Array. Zmieniłem każdą instancję, aby zamiast tego użyć długości Array # i wygląda na to, że działa.

1) Jaki jest powód tej różnicy w zachowaniu?

2) Czy są jakieś inne ekscytujące różnice między trybami dev i prod, na które powinienem zwrócić uwagę?

MORAL: Upewnij się, że środowisko hostingu produkcyjnego używa tej samej wersji Ruby, co lokalne środowisko programistyczne. :)

Dziękuję

Tom

Odpowiedz

8

Sposób count jest dostępna tylko w Ruby 1.9 i wyżej. Zalecam używanie tej samej wersji Ruby jako serwera, aby uniknąć takich problemów - wiele zmieniło się w wersji 1.9.

+0

Interesujące. Nie brałem nawet pod uwagę faktu, że moje środowisko programistyczne miało inną wersję ruby ​​niż moje środowisko hostingowe. Teraz czuję się głupio. Czy mogę usunąć to pytanie? ;) +1 – cakeforcerberus

+2

Nie polecam. Ktoś inny może mieć ten sam problem. Znałem tylko odpowiedź, ponieważ kilka miesięcy temu miałem podobny problem. –

+0

Byłem prawie pewien, że został wprowadzony w 1.8, gdzieś ... to mnie trochę, w pewnym momencie, i nie pracuję z 1.9. –

0

omg, bluehost ma Ruby 1.8.6, a teraz połowa mojej aplikacji nie działa. Głównie właśnie z powodu tego problemu, z liczbą.

+0

Tak, właśnie to mi się przydarzyło. Opracowano lokalnie i przesłano do Bluehost tylko po to, aby odkryć tę rozbieżność między wersją. Bolesny. – cakeforcerberus

Powiązane problemy