Ruby on rails 限制用户在一天内执行某个操作一定次数

Ruby on rails 限制用户在一天内执行某个操作一定次数,ruby-on-rails,devise,spam,Ruby On Rails,Devise,Spam,我正在使用Rails 3.1.0和Desive 2.1.0。我想限制用户在一天内执行操作的次数。此限制的主要目的是防止垃圾邮件 我看到了许多类似的问题,但我想知道是否有一个具体的方法来完成我试图通过设计 对于创建模型实例的操作,一天中执行操作的次数很容易跟踪。但是,我想限制的至少一个操作没有创建模型实例,所以我不确定该怎么做 我还想知道这是否是防止垃圾邮件的合法/有效的方法(除了要求用户注册并登录以执行操作之外)。就我个人而言,我发现这类系统过于复杂。除非垃圾邮件是一个存在的、可证明的问题,否则

我正在使用Rails 3.1.0和Desive 2.1.0。我想限制用户在一天内执行操作的次数。此限制的主要目的是防止垃圾邮件

我看到了许多类似的问题,但我想知道是否有一个具体的方法来完成我试图通过设计

对于创建模型实例的操作,一天中执行操作的次数很容易跟踪。但是,我想限制的至少一个操作没有创建模型实例,所以我不确定该怎么做


我还想知道这是否是防止垃圾邮件的合法/有效的方法(除了要求用户注册并登录以执行操作之外)。

就我个人而言,我发现这类系统过于复杂。除非垃圾邮件是一个存在的、可证明的问题,否则我不确定在一个可能相当广泛的系统中添加垃圾邮件是否是一种时间和精力的良好利用

除此之外,还需要通过第三方服务(如Facebook)进行注册,并使用或激动人心的全新服务

也就是说,如果你想这样做,我认为最好的跟踪方法是在一个短暂的数据存储中。因为您可以使用队列,所以Redis在这方面非常有用。在要限制的操作中,向队列添加时间戳,在允许用户执行所述操作之前,请检查队列中的元素数量,并在执行此操作时清除太旧的元素

这是一种伪代码,但至少可以帮助你开始