2012-01-10 60 views
2

關於在我的項目中實施(一點點)智能通知系統的思考。 我想要做的是發送電子郵件用戶幾個新的讓我們說私人消息一次在一定的時間範圍內,而不是每次他收到新消息。 當然也不會有不delayed_job的,但在這裏我有一對夫婦約的ActionMailer客位的問題:Rails - 行動郵件約定

  1. 你可以有多少邏輯放在梅勒類?
  2. 我可以在Mailer類方法中執行數據庫查詢嗎?

回答

2

我建議讓ActionMailer邏輯保持最低限度:只是渲染電子郵件並進行實際交付。

是的,我意識到這使得delayed_job邏輯稍微複雜一些,因爲您不能只發送延遲的電子郵件,但它將邏輯保留在應該的位置。

5

所以你會發送一個電子郵件「摘要」的各種「通知」發生在系統中。

我建議你將使用ActionMailer發送電子郵件的邏輯移動到通知類。這將持續通知,標誌爲notified(或類似)設置爲false。

然後,每天都有一份工作(或類似的工作)將摘要電子郵件發送給需要接收通知的人。

+0

你的意思是我需要另一個模型和控制器來達到這個目的嗎? – jibiel 2012-01-10 07:24:11

+0

型號是,控制器編號。 – 2012-01-10 12:15:56