[英]How can I code to prevent spam posts in Rails3?
我完全了解驗證碼,並且已經實現了我的應用程序。 到目前為止,一切正常。
顯然,如果每次要發布時都要求您輸入驗證碼,就會很煩人:(
現在,我正在考慮將當前時間與用戶上次設定的時間進行比較的方式。 如果是Post模型,並且具有created_at(Timestamp)
如何在控制器中編寫? 我想在創建時使用“過濾器之前”檢查。 我希望用戶至少等待1分鍾才能發布下一篇文章。
下面應該是這樣嗎? 我是Rails的新手。 請幫忙!
def spam_check
@post = Post.find_by_user_id(current_user.id)
lasttime = @post.created_at.last
end
在您的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
您可以在發送之前使用JS來自動填充表單中的某些隱藏字段。 如果有人禁用了JS,則只需查看驗證碼即可。
編輯:除了@sub_stantial的帖子之外,這是個好主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.