Sidekiq Install - неинициализированная константа ActiveRecord::Base (NameError)

Я пытаюсь интегрировать Sidekiq с моим приложением Rails Mongoid. Я выполнил шаги, описанные здесь

У меня также есть Redis и mongodb, работающие локально. Однако после запуска пакета, когда я пытаюсь запустить свой сервер, я получаю эту ошибку....

c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/sidekiq-2.17.7/lib/sidekiq/rails.rb:4:in `hook_rails!': uninitialized constant ActiveRecord::Base (NameError)
    from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/sidekiq-2.17.7/lib/sidekiq/rails.rb:16:in `block in <class:Rails>'
    from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.13/lib/rails/initializable.rb:30:in `instance_exec'
    from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.13/lib/rails/initializable.rb:30:in `run'
    from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.13/lib/rails/initializable.rb:55:in `block in run_initializers'
    from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.13/lib/rails/initializable.rb:54:in `each'
    from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.13/lib/rails/initializable.rb:54:in `run_initializers'
    from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.13/lib/rails/application.rb:136:in `initialize!'
    from c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.13/lib/rails/railtie/configurable.rb:30:in `method_missing'
    from C:/Users/example/Documents/Workspace/app/config/environment.rb:5:in `<top (required)>'

Мой файл environment.rb выглядит следующим образом...

# Load the rails application
require File.expand_path('../application', __FILE__)

# Initialize the rails application
App::Application.initialize!

Ранее у меня был resque, когда Redis работал с mongoid в этом приложении, так что это проблема sidekiq. У меня нет файла database.yml, так как я использую mongoid. Я также добавил шаги для kiqstand, но получаю ту же ошибку. Не знаете, как решить?

Редактировать: я на 90% уверен, что это потому, что Sidekiq ищет ActiveRecord, однако я удалил ActiveRecord, потому что вместо этого использую Mongo. У моего application.rb есть...

# remove activerecord and run off of mongo only
#require 'rails/all'
#http://stackoverflow.com/a/9327651/1026266
%w(
  action_controller
  action_mailer
  active_resource
  rails/test_unit
  sprockets
).each do |framework|
  begin
    require "#{framework}/railtie"
  rescue LoadError
  end
end

Теперь мне просто нужно выяснить, как сказать sidekiq не искать его?


person HelloWorld    schedule 07.03.2014    source источник


Ответы (1)


Проблема заключалась в отсутствии ActiveRecord, похоже, был запрос на включение — https://github.com/mperham/sidekiq/pull/1090

Но это было отклонено, поэтому мне просто пришлось добавить ActiveRecord в свое приложение и добавить фиктивный файл database.yml.

person HelloWorld    schedule 07.03.2014