В вашем классе комментариев вы можете сделать:
validate :posting_too_often
def posting_too_often
c = self.post.comments.find_by_user_id(self.user_id, :limit => 1, :order => 'created_at desc')
if c && c.created_at > 10.minutes.ago
self.errors.add_to_base("stop posting so many crappy comments!")
end
end
Это может не сработать, потому что я не проверял это, но это должно направить вас в правильном направлении. Что вы делаете:
Перед созданием комментария загрузите последний комментарий этого пользователя. Если он существует и был опубликован в течение последних 10 минут, добавьте в базу ошибку с объяснением того, почему ее нельзя было сохранить.
Надеюсь, это поможет!