Неинициализированная константа Bandit :: Engine

У меня есть приложение Rails 3.2, Ruby 1.9, которое я пытаюсь установить с помощью bandit gem.

Я установил гем, запустил bandit:install и изменил bandit.yml на (для разработки) значения round_robin и memory.

Однако все попытки запустить сервер разработки (rails s) приводят к следующей ошибке:

/Users/michaelbuckbee/Sites/bshapp/config/routes.rb:148:in `block in ': uninitialized constant Bandit::Engine (NameError)
    from /Users/michaelbuckbee/.rvm/gems/ruby-1.9.3-p0@bshapp/gems/actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:282:in `instance_exec'
    from /Users/michaelbuckbee/.rvm/gems/ruby-1.9.3-p0@bshapp/gems/actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:282:in `eval_block'
    from /Users/michaelbuckbee/.rvm/gems/ruby-1.9.3-p0@bshapp/gems/actionpack-3.2.12/lib/action_dispatch/routing/route_set.rb:260:in `draw'
    from /Users/michaelbuckbee/Sites/bshapp/config/routes.rb:1:in `'

Если я удалю строку Bandit::Engine из routes.rb и перейду в консоль rails, я смогу успешно создать Bandit Experiments.


person Mike Buckbee    schedule 10.05.2013    source источник
comment
Не могли бы вы опубликовать версию routes.rb, которая вызывает ошибку?   -  person rossta    schedule 10.05.2013


Ответы (1)


Я просто выполнил инструкции в readme для бандитов и получил ту же ошибку. Последняя версия с тегами на данный момент - bandit-0.1.0; это то, что установит сборщик, если вы не укажете никаких параметров с gem 'bandit'. Я подозреваю, что вы используете ту же версию. Если посмотреть на источник этой версии, Bandit::Engine не существует. Похоже, что он включен в bandit HEAD, который в настоящее время находится на фиксации 4c552c1efa. Сборка из HEAD устранила проблему для меня.

Итак, добавьте следующее в свой Gemfile, установите пакет и повторите попытку сервера:

gem 'bandit', :git => "git://github.com/bmuller/bandit.git"
person rossta    schedule 10.05.2013