В Rails как отключить работу с напоминанием по электронной почте - PullRequest
0 голосов
/ 24 мая 2018

У меня есть клиент, жалующийся на отправку напоминаний по электронной почте.Итак, я просмотрел код и думаю, что есть несколько мест, к которым я, вероятно, могу обратиться.

Контроллер электронных писем с напоминанием, который:

  def send_training_email(user)
   future_date = DateTime.current + 10.days
   TrainingReminderJob.set(wait_until: future_date).perform_later(user)
 end

Задания на напоминание об обучении

class TrainingReminderJob < ApplicationJob
 queue_as :default

 def perform(user)
  UserAgentMailer.training_reminder(user).deliver_later
 end
end

Я склонен просто возиться с заданиями на напоминание об обучении, поскольку это кажется наименее инвазивным.Достаточно ли будет просто добавить его в список выступлений?

1013 *

1 Ответ

0 голосов
/ 24 мая 2018

Как правило, вы добавляете логический столбец в модель User, например skip_reminder_email, и настраиваете его как admin и / или user через ваш пользовательский интерфейс.Затем проверьте это в вашем методе send_training_email.

$ rails g migration AddSkipReminderEmailToUser skip_reminder_email:boolean
$ rake db:migrate

, затем в своем методе:

def send_training_email(user)
  unless user.skip_reminder_email
    future_date = DateTime.current + 10.days
    TrainingReminderJob.set(wait_until: future_date).perform_later(user)
  end
end

Опять же, вам нужен способ для администратора или пользователя обновить skip_reminder_email логическое значение true или false.Для тестирования в разработке вы можете просто обновить флаг с консоли rails:

irb> User.find(user_id).update(skip_reminder_email: true)

, а затем запустить действие контроллера в UsersController, который вызывает send_training_email.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...