Получение ошибок ActiveRecord при использовании mongoid и Sql в файлах Ironworker

(Я относительно новичок в Rails)

У меня есть файл (Ruby), который я запускаю / загружаю через Ironworker, который в настоящее время использует MySql (activeRecord) для базы данных. ALl работает нормально, но теперь нам нужна новая (дополнительная) модель, которая будет использовать Mongoid, которая также будет включена в наш код, загруженный в IronWorker. Когда я добавляю следующую строку 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)

ПРЕДУПРЕЖДЕНИЕ О УСТАРЕВАНИИ: синхронизация устарела и будет удалена из 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) DEPRECATION WARNING: define_attr_method устарела и будет удалена без замена. (вызывается из set_table_name в /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/base.rb:660) ПРЕДУПРЕЖДЕНИЕ ОБ УДАЛЕНИИ: define_attr_method устарело и будет удалено без замены. (вызывается из set_locking_column в /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/locking/optimistic.rb:150) /usr/lib/ruby/gems/1.9.1 /gems/activerecord-3.1.6/lib/active_record/attribute_methods/read.rb:82:in define_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:indefine_method_attribute 'из /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/attribute_methods/time_zone_conversion.rb:35:in define_method_attribute' from /task/gems/activemodel/lib/active_model/attribute_methods.rb:267:inблок в define_attribute_method'из /task/gems/activemodel/lib/active_model/attribute_methods.rb:260:in each' from /task/gems/activemodel/lib/active_model/attribute_methods.rb:260:indefine_attribute_method'из /task/gems/activemodel/lib/active_model/attribute_methods.rb:256:in block in define_attribute_methods' from /task/gems/activemodel/lib/active_model/attribute_methods.rb:256:inкаждый 'из /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:indefine_attribute_methods 'из /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/attribute_methods.rb:65:in respond_to?' from /task/gems/activesupport/lib/active_support/callbacks.rb:398:in__run_callback 'из /task/gems/activesupport/lib/active_support/callbacks.rb:385:in _run_find_callbacks' from /task/gems/activesupport/lib/active_support/callbacks.rb:81:inrun_callbacks 'из /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/base.rb:1617:in init_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: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:inсобирать! из /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 'из /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 'из /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/relation/finder_methods.rb:263:in find_by_attributes' from /usr/lib/ruby/gems/1.9.1/gems/activerecord-3.1.6/lib/active_record/base.rb:1070:inmethod_missing 'из /task/user_setup.rb:74:in new_user_setup' from /task/user_setup.rb:39:inинициализировать 'из /task/justa_worker.rb:48:in new' from /task/justa_worker.rb:48:inзапустить 'из /task/runner.rb:405:in `'

1 ответ

Во-первых, драгоценный камень iron_worker устарел некоторое время назад. Обновите свой код на gem iron_worker_ng ( https://github.com/iron-io/iron_worker_ruby_ng), если можете. Это действие решит 99,9% проблем со слиянием драгоценных камней (это основная причина написания нового камня)

Возможная причина: несоответствие версии драгоценных камней, в основном это рельсы драгоценных камней. ActiveRecord / ActiveSupport / и т.д.

Пробовать:

  1. Проверьте еще раз использованные версии гемов
  2. Установите точную версию вручную (второй параметр в merge_gem)
  3. Используйте магическую конструкцию gem 'mygem', '=0.1.2' где-то в рубиновом коде
Другие вопросы по тегам