0

日付が記載されたレポートがあります。ここで、1年の特定の週までにすべてのレポートを検索したいと思います。私が持っているのはこれです:

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を使用していますが、本番DBはMySQLになります。DBに依存しないソリューションが欲しいのですが、可能であれば...

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 に答える