Jestem nowicjuszem w Ruby i ostatnio wpadłem na problem w porównaniu do wartości podczas tworzenia aplikacji Ruby on Rails. W kontrolerze miałem następujące oświadczenie, że zawsze zwrócony fałsz:Składnia Sprawdzanie lub "Kompilowanie" aplikacji Ruby on Rails
if (user.id != params[:id])
Problem był user.id (która jest Active Record) jest liczbą całkowitą i params [: id] jest ciągiem. Zajęło mi to trochę czasu i ostatecznie zmieniłem go na:
if (user.id != params[:id].to_i)
Teraz instrukcja działa zgodnie z oczekiwaniami.
Aby uniknąć tego błędu w przyszłości, istnieje sposób na "kompilację" lub uzyskanie przez Ruby ostrzeżenia, jeśli spróbujesz porównać 2 różne typy? Niektóre inne problemy, na które napotkałem, które chciałbym "sprawdzić kompilacji" to:
- Ostrzegaj mnie, jeśli utworzę zmienną, ale jej nie używam. Aby pomóc w sprawdzaniu literówek w nazwach zmiennych.
- Upewnij się, że metoda istnieje w klasie, więc mogę uniknąć literówek nazw metod, a także pomóc w refaktoryzacji, na przykład jeśli zmieniam nazwę metody.
Obecnie używam Ruby 1.8.6-27 RC2 z Rails 2.3.2 i RadRails IDE w systemie Windows.
Proszę nie odpowiadać na pytania dotyczące testowania kodu. Miałem test jednostkowy dla powyższego fragmentu kodu i ciągle się nie udawało (wraz z testowaniem ręcznym) i nie mogłem zrozumieć dlaczego. Czego szukam to sprawdzarka składni dla Rubiego, która znajdzie podobne błędy, które znajdzie standardowy kompilator. Thanx. –
Kompilator języka C nie daje błędu za wykonanie 4 == 5.5. – Chuck
Sprawdź jetbrains ruby ide, https://www.jetbrains.com/ruby/ –