【问题标题】:Time difference condition in rails using database Mongodb使用数据库Mongodb的rails中的时差条件
【发布时间】:2013-04-01 04:17:34
【问题描述】:

我想要这样的条件,例如在数据创建 5 天后,用户无法再次编辑该数据。 由于我使用 Mongodb 作为数据库

include Mongoid::Timestamps

把数据库保存在里面

 "created_at" : ISODate("2013-03-28T05:19:55.418Z")       in this format.

我想要任何想法来制作可以检查此 created_at 日期格式的 5 天的条件。

【问题讨论】:

  • 这会有帮助吗@user.created_at + 5.days
  • 如何将今天的日期(现在)带入 Mongoid 甲酸盐并为创建日期带来差异?如果这是
  • 你能试试这个吗? (@user.created_at + 5.days).strftime("%F") <= Time.now.strftime("%F")。这会将两者都转换为日期并检查它们

标签: ruby-on-rails ruby ruby-on-rails-3 mongodb mongoid


【解决方案1】:

您只能签出 4 天前或更早的文件:

db.datecol.find({ "date" : { $gte : (new Date((new Date()).getTime() - (4* 24 * 60 * 60 * 1000))) } } ).sort( { "date": 1 } )

查询将获取 datecol 集合中“日期”提交早于 o 等于 4 天前的所有文档。

问候, 莫西

【讨论】:

  • 所以你可以使用上面提到的条件: { "date" : { $gte : (new Date((new Date()).getTime() - (4* 24 * 60 * 60 * 1000 ))) } } 来限制您的系统用户可以编辑的文档。问候,莫西
【解决方案2】:

我会尝试通过验证来做到这一点

class UserInfo
  include Mongoid::Document
  include Mongoid::Timestamps

  validate :save_within_5_days_of_creation

  def save_within_5_days_of_creation
    self.created_at + 5.days < Time.now 
  end
end

我不确定您是否可以直接针对 Time.now 检查 Mongoid::Timestamps,但我认为您应该可以

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    相关资源
    最近更新 更多