加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在RoR应用程序中不更新时间戳

发布时间:2020-12-17 03:58:54 所属栏目:百科 来源:网络整理
导读:我有一个小网站,按提交日期对新闻主题进行排序.在本地,这很好.即使在连续快速发布故事时,时间戳也会有所不同. 例: Submitted Fri Mar 25 14:31:09 2011Submitted Fri Mar 25 14:30:45 2011Submitted Fri Mar 25 14:30:23 2011 但是,一旦将代码推送到heroku
我有一个小网站,按提交日期对新闻主题进行排序.在本地,这很好.即使在连续快速发布故事时,时间戳也会有所不同.

例:

Submitted Fri Mar 25 14:31:09 2011
Submitted Fri Mar 25 14:30:45 2011
Submitted Fri Mar 25 14:30:23 2011

但是,一旦将代码推送到heroku并且使用MongoHQ设置数据库,则秒值似乎被忽略或冻结.

示例文档DateTime值:

added_on 03/14/2011 09:58 AM

示例时间戳:

Submitted Thu Mar 24 13:48:40 2011
Submitted Thu Mar 24 13:48:40 2011
Submitted Thu Mar 24 13:48:40 2011
Submitted Thu Mar 24 13:48:40 2011

看来秒值没有更新?

这是型号代码,

class Post
  include Mongoid::Document
  field :link
  field :title
  field :synopsis
  field :added_on,:type => DateTime,:default => DateTime.now
  field :poster
  field :category

  validates_presence_of :link
  validates_presence_of :title
  validates_presence_of :synopsis
  validates_presence_of :category

  validates_uniqueness_of :link
  validates_uniqueness_of :title

  embeds_many :replies

  #referenced_in :topic
end

解决方法

我的猜测是你需要将默认值更改为Proc.

在开发模式下,每个请求都会重新加载模型,因此DateTime.now始终是最新的.但是,在生产中,类仅在应用程序启动期间加载一次(每个dyno),而DateTime.now会产生静态值.

field :added_on,:default => Proc.new { DateTime.now }

应该是你想要的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读