1

からアップグレードしようとしています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 サーバーを実行しようとすると、次のエラーが表示されます。

/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' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/zeus-0.13.3/lib/zeus /load_tracking.rb:50:in load' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/zeus-0.13.3/lib/zeus/load_tracking.rb:43:in load' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/engine.rb:609:in block (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:in block 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:/Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib run' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/initializable.rb:55:in の run_initializers のブロック内/Ruby/2.1.0/tsort.rb:226:/Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb block in tsort_each' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:348:in の each_strongly_connected_component 内のブロック (2 レベル) :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 /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:417:in each' からの each_strongly_connected_component_from' /Users/sjohnson/.rvm/gems/ruby-2.1 block 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 からの.2@rails4/gems/railties-4.0.5/lib/rails/initializable.rb:44:in tsort_each_child' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:411:in call' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0 /tsort.rb:411:/Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in call each_strongly_connected_component_from' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:347:in ' からの each_strongly_connected_component 内 each' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in ' /Users/ sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:345:in each_strongly_connected_component' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/tsort.rb:224:in tsort_each' from /Users/sjohnson/.rvm/rubies/ruby-2.1.2/lib/ruby /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/application.rb:215 の /2.1.0/tsort.rb:205:in tsort_each' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/initializable.rb:54:in run_initializers' :の initialize!' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/railties-4.0.5/lib/rails/railtie/configurable.rb:30:in/Users/sjohnson/my_app/config/environment.rb の method_missing:5: <top (required)>' from /Users/sjohnson/my_app/spec/spec_helper.rb:10:inrequire で /Users/sjohnson/my_app/spec/spec_helper.rb:10:require<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' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/configuration. rb:1057:in block 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' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/configuration.rb:1057:in load_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 ' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/runner.rb:85:in run' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/runner.rb:70:in run' from /Users/sjohnson /.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/lib/rspec/core/runner.rb:38:in invoke' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.3/exe/rspec:4:in ' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/bin/rspec:23:in load' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/bin/rspec:23:in ' from /Users/sjohnson/.rvm/gems/ruby-2.1.2@rails4/bin/ruby_executable_hooks :15:in 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

正常に完了しましたが、同じ問題があります。

config/initializers/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 用です。

4

1 に答える 1

1

私はイニシャライザでやった:

module PaperTrail  
  module Rails  
    class Engine < ::Rails::Engine 
      paths['app/models'] << 'lib/paper_trail/frameworks/active_record/models'  
    end 
  end 
end

そして、これを置くことをお勧めします:

PaperTrail::Rails::Engine.eager_load!`

初期化子の最後の文字列として。

于 2014-09-09T07:26:13.150 に答える