代码实现
文档:
- (最容易踩坑的点)文档未提及访问天数需至少阅读一个回复(这天的登录需要阅读了至少一个回复才会被计入50天当中):
一段无聊的代码
def days_visited
@user.user_visits.where("visited_at > ? and posts_read > 0", time_period.days.ago).count
end
- 文档未提及点赞需来自五个不同用户
要求:
两段无聊的代码
num_likes_received_users >= min_likes_received_users
def min_likes_received_users
(min_likes_received.to_f / 4.0).ceil
end
min_likes_received = 20 : (20.to_f / 4.0).ceil → 5.0.ceil → 5
因此点赞最少来自五个不同用户。
- 文档未提及点赞需分布在七天
要求:
又是两段无聊的代码
num_likes_received_days >= min_likes_received_days
def min_likes_received_days
# Since min_likes_received / 3 can be greater than the number of days in time_period,
# cap this result to be less than time_period.
[(min_likes_received.to_f / 3.0).ceil, (0.75 * time_period.to_f).ceil].min
end
易证 
代入最少需要20个赞和100天的滑动窗口可知点赞的分布最少为七天。