Ruby on rails 如何测试用户创建的14天时间?
我正在尝试构建一个试用期检查器,并尝试测试用户是否在14天内创建。所以如果超过14天,我会得到一个假的。想法Ruby on rails 如何测试用户创建的14天时间?,ruby-on-rails,Ruby On Rails,我正在尝试构建一个试用期检查器,并尝试测试用户是否在14天内创建。所以如果超过14天,我会得到一个假的。想法 if @user.trial_period === true trial_users = User.where(created_at:14.days.ago..Time.current.end_of_day) @trial_check_user = trial_users.where('id = ?', current_user.id) if @trial_check_user.firs
if @user.trial_period === true
trial_users = User.where(created_at:14.days.ago..Time.current.end_of_day)
@trial_check_user = trial_users.where('id = ?', current_user.id)
if @trial_check_user.first.present?
@user_in_trial = true
puts "!!!!!!! USER STILL IN TRIAL WINDOW !!!!!!!".red
else
@user_in_trial = false
puts "!!!!!!! NOT IN TRIAL NEED SUBCRIPTION !!!!!!!".red
redirect_to new_subscription_path
end
您是从14天前开始检查用户,还是从当前时间减去14天?这里的@user是什么?如果您刚刚从数据库中加载了它,您只需检查@user.created_at>14.days.ago是否看起来当前的_user.created_at>14.days.ago并不总是有效。给出假阴性是很困难的。有人对14天以前的问题有意见吗?请编辑您的答案,并添加一些上下文,解释此代码将如何解决OP的问题。不鼓励只使用代码的答案。
if current_user.created_at > 14.days.ago
# Still in trial
@trial_check_users = User.where('created_at > ?', 14.days.ago).count
else
@trial_check = false
redirect_to new_subscription_path
end