Sendgrid для ActiveAdmin

У меня есть веб-сайт, который в настоящее время отправляет электронное письмо пользователям, когда они регистрируются с помощью sendgrid. Это работает все хорошо, но я не могу понять, как это сделать:
Когда пользователь делает бронирование на моем сайте (это как открытая таблица), создается объект бронирования. Затем я могу зайти в Active Admin и изменить статус бронирования на принятый. Когда я принимаю его, я хочу, чтобы он автоматически отправлял электронное письмо пользователю. Кто-нибудь знает, как я могу это сделать? Я искал документацию, и я не могу найти ничего, что конкретно относится к Active Admin. Я думал о том, чтобы предпринять какие-либо действия, когда форма будет отправлена, так как статус бронирования изменяется с помощью sendgrid ruby ​​( https://github.com/sendgrid/sendgrid-ruby). Тем не менее, я понятия не имею, как это сделать. Может кто-то помочь мне с этим?

Благодарю вас!

2 ответа

Для этого не будет предопределенной библиотеки. Вы должны вызвать тот метод, который отправляет почту после принятия бронирования. под admin / registration.rb сделайте это:

controller do
  def accept
  # your accept logic
  end

  def send_mail
  # mail sending logic.
  end
end

Вы должны вызвать метод send_mail после вашей логики принятия, или вы можете использовать обратные вызовы, чтобы вызвать send_mail после принятия этой регистрации.

ActiveAdmin построен на Rails, поэтому вы можете использовать ActionMailer, например.

action_item :accept_reservation do
  link_to 'Accept reservation', accept_reservation_customer_path(resource)
end

member_action :accept_reservation do
  UserMailer.reservation_accepted(resource).deliver_now
  resource.update_attributes!(accepted_at: Time.now)
  redirect_to( {action: :show}, {notice: "Customer email sent."} )
end

ActionMailer работает с различными службами доставки почты, SendGrid имеет пояснительную документацию

Другие вопросы по тегам