如何在铁轨中以特定条件的方式获取记录



我正在编写耙子任务,以填充"产品"对象记录。我目前的逻辑是

namespace :populate_product do
    desc "This task is to populate product object, with product ID"
        task populate_coaching_product_id: :environment do
        UserProduct.find_each(batch_size: 10_000) do |user_product|
          user_product.save
        end
    end
end

现在,在上述查询中,我想获取从现在起90天后创建的记录。如何更改上述查询?

ref此

之类的东西
 Person.where("age > 21").find_in_batches do |group|
   sleep(50) # Make sure it doesn't get too crowded in there!
   group.each { |person| person.party_all_night! }
 end

用于90天后创建的记录

UserProduct.where('created_at <= ?', Time.now - 90.days ).find_each(batch_size: 10000) do |user_product|
  user_product.save
end

您可以尝试:

UserProduct.where('created_at >= ?', Time.now - 90.days ).find_each(batch_size: 10_000) do |user_product|
  user_product.save
end

注意:如果您不关心小时;分钟,您可以使用:

Date.today - 90.days 

希望这会有所帮助。

相关内容

  • 没有找到相关文章

最新更新