簡體   English   中英

如何編寫代碼以防止在Rails3中發布垃圾郵件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM