我正在尝试使用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_attribute
和define_method_attribute=
。
有什么想法吗?
答案 0 :(得分:0)
我发现了问题,define_method_attribute
下的time_zone_conversion.rb
是受保护的方法,而在ruby 2中,respond_to函数对受保护的方法始终返回false。不得不修补补丁以删除受保护的属性。