Czy user może wysłać komentarz

Witajcie,
Napisałem sobie taką funkcje, i działa. Moje pytanie jest takie czy jest dobrze napisana:

def can_post_comment?(ip) if Comment.find_by_user_ip(ip) @comment = Comment.find_by_user_ip(ip, :order => 'created_at DESC') @comment.created_at < 5.minutes.ago else return true end end
Czy zapis jest poprawny, a jeżeli nie, to jak powinien wyglądać.

Z góry dzięki za pomoc!

Zapis jest poprawny. Ale czy funkcja jest poprawna, to zależy od tego co byś chciał, żeby ona robiła. Jeżeli chodzi Ci o sprawdzenie czy ktoś z tego IP nie wysłał już komci w ciągu ostatnich 5 minut, to wygląda okej. Choć wydaje mi się, że mogłoby być prościej.

def can_post_comment?(ip) Comment.find( :first, :conditions => "ip = ? AND created_at < ", ip, 5.minutes.ago ) end

Dodatkowo zamiast “find” można użyć “count” (niepotrzebne tworzenie obiektu AR).

Jest też ładna metoda exists?