Banał ale ... :| (Active Records, czy kolekcja jest pusta)

Witam,
uszukałem sie troche lecz mimo tego nie udalo mi sie znalezc rozwiazania.

Mam pusta tabele: pages, chce aby podczas otwierania strony, zostalo sprawdzone czy tabela jest pusta, jesli jest to niech doda rekord do tabeli.

Ja to robie tak:

pages = Page.find :all if pages.nil? #nawet pages.length >0 czy tez pages.empty? nie dziala @home = Page.find Page::HOME_ID else @home = Page.new (:title => 'title', :description => 'desc') @home.save end
jak to mozliwe ze pages.nil?, pages.empty? nie dziala? przeciez Page.find :all zwraca array tak? :expressionless:

pozdrawiam

Przy opcji :all zawsze dostajesz tablicę. Jeśli nie ma szukanych elementów to tablica będzie po prostu pusta. Zatem powinno zadziałać:

[code=ruby]if pages.size == 0 #lub length

end

lub

if pages.empty?

end[/code]
Jeśli znalezionych obiektów nie zamierzasz potem używać to lepiej sprawdzić samą ilość bez pobierania rekordów:

if Page.count == 0 ... end

racja, wszystko działa, ale wtopa (nie powinna mi sie zdarzyć) źle ustawiałem warunki :confused: no ale trzeba się przyzwyczaić do nowego języka :wink:

if Page.count == 0 end
dzieki za podsuniecie dobrej praktyki :slight_smile:

pozdr.
L.