【问题标题】:Checking a database in a Rails app to see if there are any new records?检查 Rails 应用程序中的数据库以查看是否有任何新记录?
【发布时间】:2015-02-20 05:09:09
【问题描述】:

我创建了一个测试 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,就会在法案表中添加一个新条目。

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

【问题讨论】:

  • 您可以按创建日期过滤账单,并让计划任务每​​天或按其他时间运行。

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


【解决方案1】:

因为您使用 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

【讨论】:

    猜你喜欢
    • 2012-09-19
    • 2013-08-07
    • 1970-01-01
    • 2018-12-24
    • 2012-05-27
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多