0

Rails 3.2 を使用していますが、これをより動的にしたいと考えています。アクティブなジョブのみを表示したい (作成された日付に応じて)

class Job < ActiveRecord::Base
    scope :is_active, lambda { where("created_at >= DATE(?)", 30.days.ago) }
end

タイプテーブルに数値を含む列を追加し、それに基づいてクエリを実行できるようにしたいと考えています。

私は自分のコラムを追加し、このようなものを探しています

class Job < ActiveRecord::Base
    belongs_to :type
    scope :is_active, lambda { where("created_at >= DATE(?)", type.numberofdays) }
end

何を探すべきかわかりません。アクティブなレコードに関するドキュメントを読みました。さらに情報が必要な場合はお知らせください。

4

1 に答える 1

0

DATE()単一の整数値だけで使用できるとは思いません。どのデータベースを使用していますか? Jobs過去に該当するすべてを見つけるtype.numberofdaysには、更新されたスコープを持つ次を使用できます。

class Job < ActiveRecord::Base
    belongs_to :type
    scope :is_active, lambda { joins(:type).where("created_at >= :newer_than_date", newer_than_date: Date.today - type.numberofdays) }
end

更新: active_by_type :

scope :active_by_type, lambda { |type| joins(:type).where("created_at >= :newer_than_date", newer_than_date: Date.today - type.numberofdays) }
于 2013-07-03T18:43:14.760 に答える