Ruby on rails 检查是否在过去x天内创建了Rails关联

Ruby on rails 检查是否在过去x天内创建了Rails关联,ruby-on-rails,ruby-on-rails-4,activerecord,cron,Ruby On Rails,Ruby On Rails 4,Activerecord,Cron,我正在尝试创建一个CRON作业来监视我平台上用户的活动状态 它应该检查用户是否购买了东西或给某人发了信息,如果没有,则发送电子邮件。我的方法是: def self.create_new_user_reminders @new_users = User.where({ banned: false, admin: false }) @new_users = @new_users.reject { |u| u.client.try(:purchases).any? or u.client.

我正在尝试创建一个CRON作业来监视我平台上用户的活动状态

它应该检查用户是否购买了东西或给某人发了信息,如果没有,则发送电子邮件。我的方法是:

def self.create_new_user_reminders
  @new_users = User.where({ banned: false, admin: false })

  @new_users = @new_users.reject { |u| u.client.try(:purchases).any? or  u.client.try(:conversations).any? }

  @new_users.each do |nu|
    SalesMailer.delay.signup_no_engagement(nu)
  end
end
现在,我想把它扩展到一个条件,如果一个客户在过去14天里没有买东西或给别人发信息,我会发送一封电子邮件

客户与购买和对话有关,因为他们有很多联系

我可以考虑这样做的一种方法是创建嵌套循环并拒绝特定的购买和消息,但这将非常低效

在Rails上实现这一点的好方法是什么?

您可以使用created_at来检查用户是否购买了东西或向某人发送了消息

@new_users = @new_users.reject { |u| u.client.try(:purchases).where('created_at > ?', 14.days.ago).any? or  u.client.try(:conversations).where('created_at > ?', 14.days.ago).any? }

什么是客户?它是用户模型中定义的用户属性还是方法?