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 имеет пояснительную документацию