0

我完全理解验证码,并且已经在我的应用中实施。到目前为止工作正常。
显然,如果每次发布时它都要求您输入验证码,那会很烦人:(

现在我正在考虑将当前时间与用户上次提出的时间进行比较的方式。如果它是 Post 模型,并且它有它的 created_at(Timestamp)

如何在我的控制器中写入?我想在创建时使用“过滤前”检查。我希望用户至少等待 1 分钟才能发布下一篇文章。

下面应该是这样的吗?我是Rails的新手。请帮忙!

def spam_check

 @post = Post.find_by_user_id(current_user.id)
 lasttime = @post.created_at.last


end
4

2 回答 2

5

在您的Post模型中:

validate :spam_check?, :on => :create

def spam_check?
   @post = Post.find_all_by_user_id(current_user.id).last
   last_time = @post.created_at

   Time.now - last_time > 1.minute
end
于 2012-12-11T07:58:09.403 回答
1

您可以使用 JS 填写一些在发送前自动填写表单中的一些隐藏字段。如果有人禁用了 JS,那么只需查看验证码。

EDIT: It is good idea in addition to @sub_stantial's post.

于 2012-12-11T08:54:29.280 回答