【问题标题】:ruby on rails scope for date and time query用于日期和时间查询的 ruby​​ on rails 范围
【发布时间】:2014-05-09 11:19:47
【问题描述】:

我想创建一个名为 recent_flag 的范围,它返回过去 40 天的产品。我有这样的代码,并且认为并不完美,有没有什么有效的方法可以满足我的要求。

scope :recent_flag, -> { where(product.created_at <= Time.now - 40.day)}

我的数据库是 postgresql

【问题讨论】:

  • 我的回答对你有用吗?
  • @pavan,很抱歉回复晚了,是的,这是正确的,但我使用了另一种方式,感谢你的代码让我虽然不同:) 请检查我的答案。

标签: database postgresql ruby-on-rails-4 scope


【解决方案1】:

我认为您可以将范围修改为

scope :recent_flag, -> { where(product.created_at > 40.days.ago)}

注意:未测试。请尝试告诉我。

【讨论】:

  • 抱歉回复晚了,是的,这是正确的,但我使用了另一种方式,感谢你的代码让我虽然不同:) 请检查我的答案。
【解决方案2】:

用途:

scope :recent_flag, -> { where("created_at > ?",(Time.now - 40.days).beginning_of_day)}

希望对你有帮助:)

【讨论】:

  • 范围 :recent_flag, -> { Product.where(["created_at >=? AND created_at
  • 看我的回答。怎么样?
【解决方案3】:

这是我认为最好的方式。

scope :recent, -> { where(["created_at >= ?", Date.today - 14.days]) }

【讨论】:

    猜你喜欢
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多