私のユーザーがsigned_upの48時間後にレストランを作成したかどうかを確認するのに問題があります(目的は電子メールリマインダを送信することです)。サインアップ後にレストランが48時間あるかどうかをチェック
私は貴様の事を試してみましたが、今私は私の
USERモデルではこれでよ:User.rb
after_create :reminder
def reminder
if Time.now.utc == self.created_at + 48.hours && self.restaurants.count == 0
UserMailer.theactionofthemail(self).deliver_later
end
私はsidekiqと私はdidnのことを見たので、私はこのようにそれを試してみました私のUserMailers deliver_laterにジョブを作成する必要があります.. :)
すべての手がかり? 明らかでない場合は教えてください!
は、作成直後にそのメソッドを呼び出しますので、created_atとは、ユーザーのcreated_atとする(ところで、通常、あなただけの場合はミリ秒に合格した、> =と言いたい)と等しくなることはありません。事前に
すぐにお返事ありがとうございます、私は今これを試してみます:) –
私はよく分かっていれば、メールが送信され、48時間待っています。 ユーザーがレストランを作成した場合、ジョブはそれぞれチェックしています(デフォルトのsidekiqは15秒です)。 –
私は、コード例をより明確に更新しました。ユーザーの作成直後に 'CreateRestaurantReminderJob'がエンキューされ、48時間経過してから実行されるように設定されています(電子メールはまだ送信されていません)。ワーカーが走ると、「このユーザーはまだレストランを作っていますか?」と尋ねます。そうでなければ、そこにメールを送ります。 – Leito