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ć.
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