检查Rails应用程序中的数据库以查看是否有任何新记录?

时间:2015-02-20 05:09:09

标签: ruby-on-rails activerecord model-view-controller actionmailer

我创建了一个测试Rails应用程序(Rails v.4.2.0),该应用程序与包含来自美国国会的数据的外部API相关联。我有一个调用此API的任务,并在国会提取所有最近推出的账单清单。我每天检查一次API。

这些账单使用我创建的账单模型存储在数据库中。每项法案均由立法者赞助。将帐单添加到数据库的任务使用

Bill.find_or_create_by( <bill details> )

我还创建了用户帐户,以便用户可以通过将立法者保存到他们的收藏夹来跟踪各个立法者。所以我也有一个用户模型和立法者模型。

图:

 User ---> Legislator followed by user ---> Bills sponsored by legislator

所以,说用户正在关注立法者X.第二天,立法者X是新创建的账单的赞助商,因此一旦调用API,就会在Bill表中添加一个新条目。

如果他们的任何一位立法者赞助新账单,我想向用户发送电子邮件。我不确定应该怎么做。如何查看数据库以查看是否有新账单?为了发送电子邮件,我应该以某种方式将邮件程序与计划任务结合起来吗?

1 个答案:

答案 0 :(得分:0)

因为您使用Rails工具导入数据,所以可以使用ActiveRecord Callback发送电子邮件。

class Bill < ActiveRecord::Base
  after_create :send_mails

  private
    def send_mails
      self.legislator.followers.each do |follower|
        # trigger the email here
      end
    end
end