Rails Date Query用于设置Expiration

时间:2014-08-25 15:32:28

标签: ruby-on-rails

我正在创建一个卖家可以列出待售商品的市场应用。我想设置一个到期日,因此超过30天的列表不会在网站上显示。

我在网上找到了一些类似的例子,但无法让这个查询起作用。

@listings = Listing.where('created_at <= ?', Date.created_at + 30.day)

1 个答案:

答案 0 :(得分:2)

您想要查询created_at时间为>=当前日期(Date.current) - 30天(30.day)的项目。所以查询应该只是:

@listings = Listing.where('created_at >= ?', Date.current - 30.day)

您也可以将Date.current替换为Time.nowDateTime.now

更新:作为评论中提及的 user3334690 ,建议您将此作为模型方法,因为它应该是模型层:

# app/models/listing.rb
def self.not_expired
    where('created_at >= ?', Date.current - 30.day)
end

# now in controllers you can do something like
@listings = Listing.not_expired