Ruby on rails Rails 4如何将多个电子邮件通知转换为批处理电子邮件
我目前有一个应用程序,用户可以选择接收电子邮件通知,如果有一个属于他的页面更新。我已经让它工作得很好了,除了,如果有多个页面有挂起的更新(我在更新时将状态更改为挂起),那么用户最终可能会收到几封电子邮件——每页一封属于他/她 最初我花了一段时间才开始工作,但现在我不知道如何在任务运行时(目前每天一次)在一封批处理电子邮件中发送属于用户的所有更新 任务如下:Ruby on rails Rails 4如何将多个电子邮件通知转换为批处理电子邮件,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我目前有一个应用程序,用户可以选择接收电子邮件通知,如果有一个属于他的页面更新。我已经让它工作得很好了,除了,如果有多个页面有挂起的更新(我在更新时将状态更改为挂起),那么用户最终可能会收到几封电子邮件——每页一封属于他/她 最初我花了一段时间才开始工作,但现在我不知道如何在任务运行时(目前每天一次)在一封批处理电子邮件中发送属于用户的所有更新 任务如下: task :notify_user => :environment do ProductPageUpdate.where(statu
task :notify_user => :environment do
ProductPageUpdate.where(status: 'pending').each do |page_update|
PageUpdate.user_notification(page_update).deliver!
page_update.update_attribute(:status, 'notified')
end
end
这会发送my page_update/user_notification.html.erb电子邮件,其中只包含一个指向相应页面的链接:
<h2>Your page has been updated!</h2>
<p><%= link_to @page_update.page.name, page_url(@page_update.page) %></p>
您的页面已更新!
关于如何在一封电子邮件中而不是一次发送多封电子邮件中发送属于用户的所有排队等待的更新,您有什么简单的想法吗?任务:
task :notify_user => :environment do
page_updates = ProductPageUpdate.where(status: 'pending')
PageUpdate.user_notification(page_updates).deliver!
page_updates.each do |page_update|
page_update.update_attribute(:status, 'notified')
end
end
在邮件模板中:
<% @page_updates.each do |page_update|%>
<p><%= link_to page_update.page.name, page_url(@page_update.page) %></p>
<% end %>
我知道这是一种类似的东西——只是移动了一些东西而已。谢谢,我会用的!!