使用rails 3.0.5将ruby升级到2.3.4

时间:2017-08-15 13:52:22

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-2.3

我正在尝试使用ruby 2.3.4升级我的rails 3.0.5应用程序。最初它是红宝石1.9.3。我能够通过更新宝石来解决大部分问题。但是,我坚持这个问题,在创建新的活动记录对象时,时间不能正确转换。

例如

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

我能够将问题缩小到文件

  

了activerecord-3.0.20 / LIB / active_record / attribute_methods / time_zone_conversion.rb

出于某种原因,它没有调用这两个函数define_method_attributedefine_method_attribute=

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我发现了问题,define_method_attribute下的time_zone_conversion.rb是受保护的方法,而在ruby 2中,respond_to函数对受保护的方法始终返回false。不得不修补补丁以删除受保护的属性。