2

Gemfileにcomposite_primary_keysgemを追加しました。ローカル環境では正常に動作しますが、centosマシンでは次のエラーで壊れます。両方の環境で、Rubyバージョンは1.9.2p290で、rubygemsバージョンは1.3.7です。なぜそうなるのか誰か知っていますか?

bundle exec rake db:create --trace

no such file to load -- active_record/associations/has_and_belongs_to_many_association
/var/tmp/jenkins/gem_cache/myapp/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/var/tmp/jenkins/gem_cache/myapp/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `block in require'
/var/tmp/jenkins/gem_cache/myapp/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `block in load_dependency'
/var/tmp/jenkins/gem_cache/myapp/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:640:in `new_constants_in'
/var/tmp/jenkins/gem_cache/myapp/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:223:in `load_dependency'
/var/tmp/jenkins/gem_cache/myapp/gems/activesupport-3.1.3/lib/active_support/dependencies.rb:240:in `require'
/var/tmp/jenkins/gem_cache/myapp/gems/composite_primary_keys-4.1.2/lib/composite_primary_keys.rb:40:in `<top (required)>'
/opt/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:68:in `require'
/opt/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
/opt/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:66:in `each'
/opt/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:66:in `block in require'
/opt/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:55:in `each'
/opt/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler/runtime.rb:55:in `require'
/opt/ruby/1.9.2/lib/ruby/gems/1.9.1/gems/bundler-1.0.22/lib/bundler.rb:122:in `require'
4

3 に答える 3

1

Active Record4.1.0でcomposite_primary_keysgemを使用しようとすると、同じエラーが発生する可能性があります。

.../vendor/cache/ruby/1.9.1/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `require': cannot load such file -- active_record/associations/has_and_belongs_to_many_association (LoadError)
  from .../vendor/cache/ruby/1.9.1/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `block in require'
  from .../vendor/cache/ruby/1.9.1/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:232:in `load_dependency'
  ...

これは、composite_primary_keysの現在のリリース(2014年4月17日現在のバージョン6.0.1)には、問題のファイルを削除したと思われるActiveRecord4.1.0のサポートが含まれていないためです。

ただし、この問題はgemのソースコードのブランチで修正ar_4.1.xされています。プロジェクトでBundlerを使用している場合、解決策はGemfileを編集して、行を置き換えることです。

gem 'composite_primary_keys'

gem 'composite_primary_keys', {
  :git => 'git://github.com/composite-primary-keys/composite_primary_keys.git',
  :branch => 'ar_4.1.x'
}

次にbundle install、プロジェクトのルートフォルダから実行します。

于 2014-04-17T19:43:20.817 に答える
0

jenkinsマシンの共有gemリストをクリーンアップすると、問題が修正されました。

于 2012-06-19T00:31:23.230 に答える
0

Gemfileを更新します。 gem 'composite_primary_keys', '~> 7.0'

于 2014-09-06T19:40:59.920 に答える