/ / Rails 3: Como faço para atrasar o envio de conteúdo para que os usuários não possam enviar spam rapidamente? - ruby-on-rails, ruby, ruby-on-rails-3, prevenção de spam

Rails 3: Como faço para atrasar o envio de conteúdo para que os usuários não possam enviar spam rapidamente? - ruby-on-rails, ruby, ruby-on-rails-3, prevenção de spam

Por exemplo, se um usuário enviar uma postagem, deve haver um período de atraso de talvez 10 minutos durante o qual ele não poderá enviar outra postagem.

Alguém poderia me indicar uma boa jóia / tutorial / método? Para referência, estou no Rails 3.

Respostas:

3 para resposta № 1

Se o seu rastreamento por usuário, você pode manter uma coluna chamada last_active que é um campo de data e hora, e atualize-o quando o usuário enviar o formulário. (Supondo que não haja muitas formas, então talvez pense em dar a esses carimbos de data / hora seu próprio modelo).

Em seguida, faça cálculos matemáticos para ver se dez minutos se passaram.

user.last_active + 10.minutes > Time.now ? "User can post" : "User cannot post"

Nota: Não na frente de um console, pode ser 10.minute

Então, sua lógica de formulário:

def form_stuff
//Form Logic
@user.last_active = Time.now
end