/ / Rails 3: ¿Cómo retraso el envío de contenido para que los usuarios no puedan enviar correo basura rápidamente? - Ruby-on-Rails, Ruby, Ruby-on-Rails-3, prevención de spam

Rails 3: ¿Cómo retraso el envío de contenido para que los usuarios no puedan enviar correo no deseado rápidamente? - Ruby-on-Rails, Ruby, Ruby-on-Rails-3, prevención de spam

Por ejemplo, si un usuario envía una publicación, debe haber un período de demora de aproximadamente 10 minutos en el que no puede enviar otra publicación.

¿Podría alguien apuntarme a una buena gema / tutorial / método? Para referencia, estoy en Rails 3.

Respuestas

3 para la respuesta № 1

Si su seguimiento por usuario, puede mantener una columna llamada last_active que es un campo de fecha y hora, y actualizarlo cuando el usuario envíe el formulario. (Suponiendo que no hay muchas formas, entonces tal vez piense en dar a estas marcas de tiempo su propio modelo).

Luego, simplemente realiza un cálculo de fecha para ver si han pasado diez minutos.

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

Nota: No delante de una consola, eso podría ser 10.minute

Entonces tu forma lógica:

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