我正在尝试从Ruby 1.9.3 to Ruby 2.1.2 (Rails 4.0)
. 我正在使用 RVM。
我安装了 Ruby 2.1.2,更新了 Gemfile,包括指定"gem 'paper_trail', '~> 3.0.5'"
,切换到带有 RVM 的 Ruby 2.1.2,创建了一个新的 gemset,然后切换到它。
然后我做了一个捆绑安装。
当我尝试运行 rails server 时,出现以下错误:
/Users/sjohnson/my_app/config/initializers/paper_trail.rb:2:in
<top (required)>': uninitialized constant PaperTrail::Rails::Engine (NameError) from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/zeus-0.13.3/lib/zeus/load_tracking.rb:50:in
load' 来自 /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/zeus-0.13.3/lib/zeus /load_tracking.rb:50:inload' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/zeus-0.13.3/lib/zeus/load_tracking.rb:43:in
load' 来自 /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/engine.rb:609:inblock (2 levels) in <class:Engine>' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/engine.rb:608:in
each'来自 /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/engine.rb:608:inblock in <class:Engine>' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/initializable.rb:30:in
instance_exec' 来自 /Users/sjohnson/.rvm/gems /ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/initializable.rb:30:inrun' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/initializable.rb:55:in
block in run_initializers' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib /ruby/2.1.0/tsort.rb:226:inblock in tsort_each' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:348:in
block (2 levels) in each_strongly_connected_component'来自/Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb :418:在block (2 levels) in each_strongly_connected_component_from' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:427:in
each_strongly_connected_component_from' 来自 /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:417:inblock in each_strongly_connected_component_from' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/initializable.rb:44:in
each' 来自 /Users/sjohnson/.rvm/gems/ruby-2.1 .2@rails4/gems/railties-4.0.5/lib/rails/initializable.rb:44:intsort_each_child' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:411:in
call' 来自 /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0 /tsort.rb:411:ineach_strongly_connected_component_from' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:347:in
block in each_strongly_connected_component' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:ineach' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in
call' from /Users/ sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:ineach_strongly_connected_component' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:224:in
tsort_each' 来自 /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby /2.1.0/tsort.rb:205:intsort_each' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/initializable.rb:54:in
run_initializers' 来自 /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/application.rb:215 :在initialize!' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/railtie/configurable.rb:30:in
method_missing'来自/Users/sjohnson/my_app/config/environment.rb:5:in<top (required)>' from /Users/sjohnson/my_app/spec/spec_helper.rb:10:in
来自/Users/sjohnson/my_app/spec/spec_helper.rb:10:in<top (required)>' from /Users/sjohnson/my_app/spec/api/v1/api_authentication_spec.rb:1:in
需要'来自/Users/sjohnson/my_app/spec/ api/v1/api_authentication_spec.rb:1:in<top (required)>' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/configuration.rb:1057:in
load' 来自 /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/configuration。 rb:1057:inblock in load_spec_files' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/configuration.rb:1057:in
each' 来自 /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/configuration.rb:1057:inload_spec_files' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/runner.rb:97:in
setup '来自 /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/runner.rb:85:inrun' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/runner.rb:70:in
run' 来自 /Users/sjohnson /.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/runner.rb:38:ininvoke' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/exe/rspec:4:in
' 来自 /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/bin/rspec:23:inload' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/bin/rspec:23:in
' 来自 /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/bin/ruby_executable_hooks :15:在eval' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/bin/ruby_executable_hooks:15:in
'我试图运行: bundle exec rails generate paper_trail:install
它表明迁移文件已经存在(PaperTrail 在 1.9.3 下工作)。所以,我再次运行它: bundle exec rails generate paper_trail:install -s
它成功完成,但我有同样的问题。
配置/初始化程序/paper_trail.rb:
# the following line is required for PaperTrail >= 3.0.3 with Rails PaperTrail::Rails::Engine.eager_load! module PaperTrail class Version < ActiveRecord::Base attr_accessible :captain end end `
想法?其他有用的信息?
编辑: 尽管在初始化文件中引用了 paper_trail 3.0.3,gem 的版本是 3.0.5(通过执行 gem 列表验证)。错误跟踪中对 3.0.3 的引用适用于 Rspec。