Ruby on rails 在Rails 4中自动更新字段的最佳方法

Ruby on rails 在Rails 4中自动更新字段的最佳方法,ruby-on-rails,Ruby On Rails,我有一个状态字段,它是从数组生成的列表。我有一个last UpdateTime字段,当以任何方式访问和更改记录时,该字段都会更新。我需要做的是确定在过去30天内没有更新的任何记录,并自动将状态字段更新为pending。这将至少每周进行一次,但可能在每天结束时进行 Cron作业本身不可用。我有权获得延迟的工作,但我不清楚我是否能让它做我需要做的事情。还有什么其他方法可以做到这一点呢?首先,在后台运行任务和在特定时间、特定时间间隔运行任何任务是两件不同的事情 延迟作业帮助我们根据任务的优先级在后台运

我有一个状态字段,它是从数组生成的列表。我有一个last UpdateTime字段,当以任何方式访问和更改记录时,该字段都会更新。我需要做的是确定在过去30天内没有更新的任何记录,并自动将状态字段更新为pending。这将至少每周进行一次,但可能在每天结束时进行


Cron作业本身不可用。我有权获得延迟的工作,但我不清楚我是否能让它做我需要做的事情。还有什么其他方法可以做到这一点呢?

首先,在后台运行任务和在特定时间、特定时间间隔运行任何任务是两件不同的事情

延迟作业帮助我们根据任务的优先级在后台运行任何任务

另一方面,cron作业帮助我们每天、每月、每周或在一天中的任何特定时间运行任务

您需要编写一个任务来获取过去30天内未更新的所有记录并更新其状态。然后,您需要使用诸如或之类的调度插件来调度作业在所需时间运行

您必须编写类似以下内容的rake任务:

task :update_records => :environment do
  my_records = MyModel.where('updated_at <= ?', Time.now - 30.days)
  # Do your operations here on my records
end
task:update_records=>:environment do

my_records=MyModel.where('updated_at)您可以使用cron作业轻松完成此任务。编写一个rake任务并每周(或每天)调用它通过cron job。你也可以使用'where'gem。你需要
状态
字段吗?不能从
上次更新的
字段推断
状态
吗?这取决于你的逻辑,但请检查此状态字段不是日期,它类似于报价、收到订单等。我将为r在上次更新日期后的30天内没有特定状态的订单。谢谢,看起来任何时候都有。我会检查一下,看看我能做些什么。