DateTime方法的时区更改(Rails 4.2.8)

时间:2019-07-17 21:49:53

标签: ruby-on-rails ruby ruby-on-rails-4 machinist

我试图从Rails 4.2.7升级到4.2.8,并发现Rails的DateTime方法在从数据库重载时将时区切换到本地,这在Rails 4.2.7中是看不到的。在Rails 4.2.8上,我的应用程序的单元测试依靠DateTime方法来开始新的一年

<ion-content>
    <ion-menu type="push" menuId="nav-menu">
      // create menu items
    </ion-menu>
    <div main>
        hello world
    </div>
</ion-content>


I expect the menu to remain open/unchanged when clicking on the hello world.

此结果值作为对象的一部分传递给
Class:Machinist::ActiveRecord::Blueprint发生重新加载的位置。

DateTime.new(2019,1,1,0,0,0)
Tue, 01 Jan 2019 00:00:00 +0000

instance_variable_get方法,位于

def reload(options = nil)
  clear_aggregation_cache
  clear_association_cache
  self.class.connection.clear_query_cache

  fresh_object =
    if options && options[:lock]
      self.class.unscoped { self.class.lock(options[:lock]).find(id) }
    else
      self.class.unscoped { self.class.find(id) }
    end

  @attributes = fresh_object.instance_variable_get('@attributes')
  @new_record = false
  self
end

将Rails 4.2.8的时区切换为本地(Mon,31st Dec 2018 16:00:00 -0800),但不在4.2.7上,时区仅切换时区而不是时间(1月1日,星期二) 2019 00:00:00 -0800)。类似的方法Time.new()对此没有问题,因为默认时区设置为本地,

@attributes = fresh_object.instance_variable_get('@attributes')

试图查明在Rails 4.2.8上所做的更改,这些更改不允许重新加载时的DateTime方法的时区保持为UTC。 关于此的任何见解都是有帮助的。 谢谢

0 个答案:

没有答案