Запрос к базе данных в Actionmailer - PullRequest
0 голосов
/ 18 января 2010

У меня проблема, я упрощу ее до примера с блогом.

  1. Каждый «пост» создается другим пользователем, хранящимся в базе данных «Пользователь».
  2. Несколько «комментариев» принадлежат одному «посту».
  3. Когда создается новый «комментарий», пользователь, создавший исходное «сообщение», должен получить электронное письмо.

Я настроил почтовую программу и наблюдателя. Я просто не знаю, как получить пользователя адреса электронной почты после создания нового сообщения.

1 Ответ

3 голосов
/ 18 января 2010

Я полагаю, у вас есть ассоциации, настроенные так

class User
  has_many :posts
end

class Post
  belongs_to :user
  has_many :comments
end

class Comment
  belongs_to :post
end

Тогда в вашем почтовом ящике просто найдите адрес электронной почты пользователя через эти ассоциации

class CommentMailer < ActionMailer::Base
  def comment_notification(comment)
    recipients comment.post.user.email
    # Other mail sending methods
  end
end

А после создания нового комментария

comment = Comment.create(attributes)
CommentMailer.deliver_comment_notification(comment)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...