将我的Rails 3.2.12项目切换到Ruby 2.0.0无法通过测试:
NoMethodError:
private method `initialize_dup' called for #<Receipt:0x007fe06c809428>
看起来initialize_dup
现在是私有方法。
使用Rails 3.2.12和Ruby 2.0.0时,如何才能通过测试?
答案 0 :(得分:12)
对于那些因担心可能带来的问题而担心升级到3.2.13的人,我在初始化文件中添加了这个:
# Because of the Ruby 2.0 privatizes the method and Rails 3.2.12's use of it
# , and because Rails 3.2.13 (which has a fix) also could potentially
# introduce other bugs, we're adding this patch to fix the issue.
#
# Remove this if the project contains Rails >= 3.2.13
module ActiveModel
class Errors
public :initialize_dup
end
module Validations
public :initialize_dup
end
end
class ActiveRecord::Base
public :initialize_dup
end
答案 1 :(得分:2)
它已经发布请使用带有Rails 3.2.13.rc2的Ruby 2.0.0并修复了上述问题initialize_dup在此发布和更多修复中。
http://weblog.rubyonrails.org/2013/3/7/Rails-3-2-13-rc2-has-been-released/
它对我有用。