Jestem początkującą osobą w Rails i w Ruby więc proszę o wyrozumiałość
Jak sobie radzicie z tym, że metoda find z AR zwraca obiekt albo tablicę. Wpisujecie warunek do metody find i spodziewacie się tablicy, więc widok jest przygotowany na tablicę z <% for o in tab %> a tutaj kaplica bo find zwrócił jeden obiekt. Czy za każdym razem zanim coś zrobię mam sprawdzić do jakiej klasy należy mój wynik, czy jest może jakiś inteligenty sposób.
[quote=bober0]for item in @twoja_tablica
...
end if @twoja tablica
[/quote]
Drobna sugestia: odradzam stosowania modyfikatorów if/unless/… w przypadku wielolinijkowych bloków kodu. Nie wygląda to najładniej i z całą pewnością nie zwiększa czytelności kodu. Podobnie w przypadku łańcuchowych wywołań, takich jak:
Nie rozumiem za bardzo problemu. Owszem, metoda AR#find zwraca tablicę lub 1 obiekt, ale jest to kompletnie deterministyczne zachowanie, więc obsłużenie tego nie powinno stanowić żadnego problemu.
Dlaczego tak sądzisz?
W widokach to dla mnie bardzo wygodne rozwiązanie.
W przykładzie który podałem if/unless jest tylko serwisowy. Ma za zadanie przewidzenie braku zmiennej.
Pętla się nie wykonuje gdy zmienna jest pusta lub nie jest zainicjalizowana.
Dodanie ifa powyżej pętli jest tylko stratą 2 lini.
if @twoja_tab
for item in @twoja_tab
..
end
end
5 lini
for item in @twoja_tab
..
end if @twoja_tab
tylko 3 linie