Rails:如何在数据库中查找具有条件的记录

时间:2013-07-03 18:24:27

标签: ruby-on-rails activerecord

我正在使用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

我不确定要查找什么,我已阅读有关活动记录的文档。如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分: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) }