Получение ошибок 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:in
define_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:in
define_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:in
define_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:in
run_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:in
to_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:in
first 'из /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:in
method_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 / и т.д.
Пробовать:
- Проверьте еще раз использованные версии гемов
- Установите точную версию вручную (второй параметр в merge_gem)
- Используйте магическую конструкцию
gem 'mygem', '=0.1.2'
где-то в рубиновом коде