1

我有一个网站,一旦用户使用 sendgrid 注册,它就会向他们发送电子邮件。这一切都很好,但我不知道如何做到这一点:
当用户在我的网站上进行预订(有点像开放表)时,会创建预订对象。然后我可以继续使用 Active Admin 并将预订状态更改为已接受。当我接受它时,我希望它自动向用户发送电子邮件。有人知道我该怎么做吗?我搜索了文档,但找不到与 Active Admin 相关的任何内容。我正在考虑在提交表单时采取行动,即使用 sendgrid ruby​​ 更改预订状态(https://github.com/sendgrid/sendgrid-ruby)。但是,我不知道该怎么做。有人可以帮我弄这个吗?

谢谢你!

4

2 回答 2

0

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 有一些解释性文档

于 2018-03-09T14:23:05.920 回答
0

不会有任何预定义的库。您必须在接受预订后调用发送邮件的方法。在 admin/registration.rb 下,执行以下操作:

controller do
  def accept
  # your accept logic
  end

  def send_mail
  # mail sending logic.
  end
end

您必须在接受逻辑之后调用 send_mail 方法,或者您可以在接受此注册后使用回调来调用 send_mail。

于 2018-03-09T10:59:30.073 回答