0

我正在尝试使用 ruby​​ 2.3.4 升级我的 rails 3.0.5 应用程序。最初它是 ruby​​ 1.9.3。我能够通过更新 gem 来修复大部分问题。但是,我遇到了一个问题,即在创建新的活动记录对象时,时间不能正确转换。

例如

Product.new(:bought_on => Date.today)将对象保存为bought_on日期,而不是日期时间。

我能够将问题缩小到文件

activerecord-3.0.20/lib/active_record/attribute_methods/time_zone_conversion.rb

由于某种原因,它没有调用这两个函数,define_method_attribute并且define_method_attribute=.

有任何想法吗?

4

1 回答 1

0

我发现了问题,define_method_attributeundertime_zone_conversion.rb是一个受保护的方法,在 ruby​​ 2 中,respond_to 函数总是为受保护的方法返回 false。不得不猴子补丁删除受保护的属性。

于 2017-08-16T13:45:28.100 回答