短期的な連続投稿の禁止と、長期的な連続投稿禁止の2つの実装を考えております。
短期的な制限は10秒以内に連続投稿するのを制限し、長期的な制限は1時間にコメントできる最大回数です。
短期的なものは
if Time.now - current_user.comments.last.created_at <= 10.seconds.to_i
で検知して、長期的なものはレコードが増えた時にredisに回数を記録し、1時間ごとに削除していこうかと思います
come_count = REDIS.get "users/write_num/#{@usser.id}" if come_count >= 100
ただ思いついたものなのでどうするのがベストプラクティスなのかご教授ください
ご指摘をいただいたを修正しました。
あと redisとcronを使うのは大げさだと思い、このように修正しました
#10秒以内に連続投稿はだめ def obey_10sec_role? current_user.comments.last.created_at <= 10.seconds.ago end # 1時間以内に60コメ def obey_1hour_role? current_user.comments.count <= 60 && current_user.comments.last(60).first.created_at <= 1.hours.ago end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/07 03:36