我正在尝试将users
添加到conversation
时通知他们。我可以通过查找对话并只需拨打@conversation.users
来访问所有用户。在这个例子中它是3.
conversation has_and_belongs_to_many :users
user has_and_belongs_to_many :conversations
在我的conversation.rb
模型中,我正在尝试向每位after_save
发送电子邮件。
def send_notify_mail
@conversation = self
@conversation_users = @conversation.users
@conversation_users.each do |user|
ConversationMailer.notify_mail(self.id).deliver
end
end
我没有收到任何错误,但它只是将电子邮件发送给一个用户,而不是所有用户。我是否试图以正确的方式做到这一点?我应该在模型中循环用户吗?
答案 0 :(得分:0)
不应该这个
ConversationMailer.notify_mail(self.id).deliver
是这个
ConversationMailer.notify_mail(user).deliver
答案 1 :(得分:0)
解决方案取决于您如何定义notify_mail
方法。但是,可以合理地假设您的代码确实不将每个用户传递给方法 - 相反,它传递了Conversation
对象。您可以通过以下方式解决此问题:
@conversation_users.each do |user|
ConversationMailer.notify_mail(user).deliver
end
同样,这取决于您的notify_mail
方法的结构,但如果它向User
对象发送电子邮件,那么这可能会解决您的问题。