0

我正在为我的 rails 项目编写我的第一个 rake 任务,我对如何实现它有一个非常模糊的想法。

基本上,我的目标是拥有一个每天运行一次这个 rake 任务的自动化流程(Cron+Whenever)。

该任务将遍历每个 Traveldeal 实例并将其 expired_date 字段与当前日期进行比较,如果 Traveldeal 已过期,它将把 expired 布尔值设置为 true。

这是我根据我在网上找到的其他一些 raketask 编写的任务。

namespace :traveldeal do
  desc "Expire Old Traveldeals"
  task :expired_traveldeals => :environment do
    Traveldeal.transaction do
      Traveldeal.all.each { |deal|
        if(deal.expired_date <= Date.today)
           deal.expired = 't'
           deal.save!
        end   
      }
    end
  end
end

我的 raketasks 似乎正在运行,但看起来我的过期字段没有设置为“t”。

有什么建议么?

谢谢。

4

1 回答 1

0

您将需要引用命名空间

rake traveldeal:expired_traveldeals
于 2012-05-14T23:17:28.593 回答