Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何测试用户创建的14天时间?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何测试用户创建的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

我正在尝试构建一个试用期检查器,并尝试测试用户是否在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.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