我完全理解验证码,并已在我的应用中实现。到目前为止工作正常。
显然,如果它要求你在每次发帖时输入验证码,那就太烦人了:(
现在我正在考虑将当前时间与用户上次提出的时间进行比较的方式。 如果它是Post模型,它有created_at(时间戳)
如何在控制器中书写?我想使用'过滤前'检查它何时创建。 我希望用户至少等待1分钟发布下一篇文章。
它应该是这样的吗?我是Rails的新手。请帮忙!
def spam_check
@post = Post.find_by_user_id(current_user.id)
lasttime = @post.created_at.last
end
答案 0 :(得分: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
答案 1 :(得分:1)
您可以使用JS填充一些在发送之前自动填充表单中的一些隐藏字段。如果有人禁用了JS,那么只需查看验证码即可。
编辑:除了@sub_stantial's post之外,这是一个好主意。