动作管理器中的数据库查询

时间:2010-01-18 08:04:48

标签: ruby-on-rails ruby

我遇到了问题,我会将其简化为博客示例。

  1. 每个“帖子”由存储在“用户”数据库中的其他用户创建。
  2. 一些'评论'属于一个'帖子'。
  3. 当发出新的“评论”时,创建初始“帖子”的用户需要通过电子邮件发送。
  4. 我已经设置了邮件程序和观察者。我只是不确定如何在发布新帖子后获取帖子的电子邮件地址的用户。

1 个答案:

答案 0 :(得分:3)

我假设您已经设置了像这样的关联

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)