我有一个带有字符串列访问权限的Document模型和一个带有字符串列team的User模型。在文档中,我可以输入一系列项目以供访问,例如“员工、销售人员、经理”。同时,一个用户在team下只有一项。
我正在尝试根据每个user.team是否包含在Document.access的数组中来向特定用户发送电子邮件。
例如,如果Document.access = "sales, management"
,只有具有team = "sales" or team = "management"
的用户会收到电子邮件。其他用户,例如 team = "accounting" 不会。
更新:
从我在这个问题上收集到的信息来看,ActionMailer 似乎无法循环,所以我修改了我的 document_observer。现在我将循环部分移出邮件程序,user.email 出错了
undefined method 'user' for
如果我坚持使用像'joe@net.com'这样的字符串,正确数量的电子邮件就会发出,所以这部分似乎有效。现在只需将正确的电子邮件地址传递给消息。
下面是我的 document_observer 中的相关代码:
def after_save(model)
@users = User.all
@users.each do |user|
if model.access.include? user.team
MultiMailer.doc_notification(model).deliver
end
end
end
来自邮件程序的相关代码。如何为每封电子邮件传递user.email ?
def doc_notification(document)
mail(:to => 'joe@net.com')
end
最近更新:
好的,我刚刚切换了几行
MultiMailer.doc_notification(user).deliver
和
def doc_notification(user)
所以现在电子邮件会发送给每个正确的用户,但似乎我只是在扭转上述问题并将未知用户交易为未知文档。电子邮件需要引用刚刚更新的文档的 URL。
我还应该提到 Document 和 User 之间没有关联。