使用 rails 3.0.5 将 ruby 升级到 2.3.4



我正在尝试使用 ruby 3.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=

有什么想法吗?

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

相关内容

  • 没有找到相关文章

最新更新