0

我的报告中有日期。现在我想查找一年中某一周的所有报告。我所拥有的是:

class Model < ActiveRecord::Base
  attr_accessible :date

  def self.find_by_week(week, year)
    Model.all.find_all do |model|
      model.date.year == year and model.date.s­trftime("%­W").to_i == week
    end
  end  
end

但是当软件已经积累了成千上万的预期报告时,我担心这个解决方案的性能可能不是很好。有更好的解决方案吗?

如果重要的话,我在开发中使用 SQLite3,但生产数据库将是 MySQL。虽然我想要一个独立于数据库的解决方案,但如果可能的话......

4

1 回答 1

2

您可以传入一个日期范围:

dates = Date.commercial(2012,40)..Date.commercial(2012,41)
Model.where(:date => dates)

还有更多可用的参数Date.commercial- 以上将为您提供周一至周一。要设置更具体的日期/时间,请查看文档

于 2012-10-06T21:13:04.813 回答