0
私のプラットフォーム上でuser
の活動状況を監視するためにCRON
ジョブを作成しようとしています。Rails関連付けが過去x日以内に作成されたかどうか確認してください
ユーザーが何かを購入したか、誰かにメッセージを送信したかどうかを確認し、そうでない場合は電子メールを送信します。同じのための私の方法は次のとおりです。
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日間の誰かがメッセージとして送られていない場合は、メールを送信した状態が含まれるように、これを拡張したいです。
Client
は、Purchases
およびConversations
としてhas_many
アソシエーションと関連しています。
これを行う方法の1つは、ネストされたループを作成して特定のpurchases
とmessages
を拒否することですが、これは本当に非効率的です。
これをRailsに実装する良い方法はありますか?
メッセージとして送らいる場合
created_at
の使用をチェックすることができますか?ユーザーの属性ですか、ユーザーモデルで定義されているメソッドですか? – dhaliman