2

(私はRailsに比較的慣れていません)

現在、データベースに MySql (activeRecord) を使用している Ironworker を介して実行/アップロードしているファイル (Ruby) があります。すべて正常に動作しますが、IronWorker にアップロードされたコードにも含まれる Mongoid を使用する新しい (追加の) モデルが必要になりました。次の行 merge_gem 'mongoid' を IronWorker ファイルに含めると、次のようになります。

非推奨の警告: 属性メソッドに空のプレフィックス/サフィックスを指定する必要はなくなりました。が呼び出されたときにメソッドの接頭辞/接尾辞なしのバージョンが定義されていない場合define_attribute_methodsは、自動的に定義されます。(/usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/attribute_methods/read.rb:9 のブロックから呼び出されます)

非推奨の警告: synchronize は非推奨であり、Rails 3.2 から削除されます。(/usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:298 から呼び出されます)置換。(/usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/base.rb:660 の set_table_name から呼び出されます) 非推奨の警告: define_attr_method は非推奨であり、置換なしで削除されます。(/usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/locking/optimistic.rb:150 の set_locking_column から呼び出されます) /usr/lib/ruby/gems/1.9.1 /gems/activerecord-3.1.6/lib/active_record/attribute_methods/read.rb:82:indefine_read_method': uninitialized constant ActiveModel::AttributeMethods::COMPILABLE_REGEXP (NameError) from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/attribute_methods/read.rb:42:in/usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/attribute_methods/time_zone_conversion.rb:35 の「define_method_attribute' from /task/gems/activemodel/lib/active_model/attribute_methods.rb:267:indefine_method_attribute」: /task/gems/activemodel/lib の「define_attribute_method」のブロック内/active_model/attribute_methods.rb:260 each' from /task/gems/activemodel/lib/active_model/attribute_methods.rb:260:in: /task/gems/activemodel/lib/active_model/attribute_methods.rb:256 の define_attribute_method 内: /task/gems/activemodel/lib/active_model/attribute_methods.rb:256 の each block in define_attribute_methods' from /task/gems/activemodel/lib/active_model/attribute_methods.rb:256:in' 内: define_attribute_methods' from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/attribute_methods.rb:14:in/usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/attribute_methods.rb:65 のrespond_to?' from /task/gems/activesupport/lib/active_support/callbacks.rb:398:indefine_attribute_methods 内: /task/gems/activesupport/lib/active_support の __run_callback 内/callbacks.rb:385:in_run_find_callbacks' from /task/gems/activesupport/lib/active_support/callbacks.rb:81:ininit_with' from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/base.rb:959:in/usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/base.rb:1617:in instantiateからの run_callbacks ' /usr/lib/ruby/gems/1.9.1 からの' /gems/activerecord-3.1.6/lib/active_record/base.rb:470:in block in find_by_sql' from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/base.rb:470:incollect!」from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/base.rb:470:in find_by_sql' from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/relation.rb:112:into_a' from /usr/lib/ruby/gems/1.9.1/gems /activerecord-3.1.6/lib/active_record/relation/finder_methods.rb:376:in find_first' from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/relation/finder_methods.rb:122:infirst' from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/relation/ finder_methods.rb:263:/task/user_setup.rb:74:in initialize find_by_attributes' from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/base.rb:1070:in' new_user_setup' from /task/user_setup.rb:39:infrom /task/justa_worker.rb:48:in new' from /task/justa_worker.rb:48:inrun' from /task/runner.rb:405:in `'

4

1 に答える 1

4

まず、iron_worker gem は少し前に非推奨になりました。可能であれば、コードを iron_worker_ng gem ( https://github.com/iron-io/iron_worker_ruby_ng ) に更新してください。このアクションにより、gem のマージに関する 99.9% の問題が解決されます (これが新しい gem を作成する主な理由です)

考えられる理由: gem のバージョンの不一致、主に rails gem です。アクティブレコード/アクティブサポート/など

試してみてください:

  1. 実際に使用されているgemのバージョンを再度確認する
  2. 正確なバージョンを手動で設定 (merge_gem の 2 番目のパラメーター)
  3. gem 'mygem', '=0.1.2'Rubyコードのどこかで魔法の構築を使用する
于 2012-10-19T09:56:34.507 に答える