Разработка Invitable LoadError

Проблема:

m@m-Lenovo-IdeaPad-Y470:~/Dropbox/software/Rails/CIRCAR_CP_NEW$ rails s
Initialize SymmetricEncryption module.
=> Booting Thin
=> Rails 3.2.6 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/home/m/Dropbox/software/Rails/CIRCAR_CP_NEW/config/initializers/registrations.rb:1:in `<top (required)>': cannot load such file -- devise_invitable/controllers/registrations (LoadError)
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:245:in `load'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:245:in `block in load'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:245:in `load'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/engine.rb:588:in `block (2 levels) in <class:Engine>'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/engine.rb:587:in `each'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/engine.rb:587:in `block in <class:Engine>'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/initializable.rb:30:in `instance_exec'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/initializable.rb:30:in `run'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/initializable.rb:55:in `block in run_initializers'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/initializable.rb:54:in `each'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/initializable.rb:54:in `run_initializers'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/application.rb:136:in `initialize!'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /home/m/Dropbox/software/Rails/CIRCAR_CP_NEW/config/environment.rb:7:in `<top (required)>'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `block in require'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:236:in `load_dependency'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'
from /home/m/Dropbox/software/Rails/CIRCAR_CP_NEW/config.ru:3:in `block in <main>'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/rack-1.4.5/lib/rack/builder.rb:51:in `instance_eval'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/rack-1.4.5/lib/rack/builder.rb:51:in `initialize'
from /home/m/Dropbox/software/Rails/CIRCAR_CP_NEW/config.ru:in `new'
from /home/m/Dropbox/software/Rails/CIRCAR_CP_NEW/config.ru:in `<main>'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/rack-1.4.5/lib/rack/builder.rb:40:in `eval'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/rack-1.4.5/lib/rack/builder.rb:40:in `parse_file'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/rack-1.4.5/lib/rack/server.rb:200:in `app'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/commands/server.rb:46:in `app'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/rack-1.4.5/lib/rack/server.rb:304:in `wrapped_app'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/rack-1.4.5/lib/rack/server.rb:254:in `start'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/commands/server.rb:70:in `start'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/commands.rb:55:in `block in <top (required)>'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/commands.rb:50:in `tap'
from /home/m/.rvm/gems/ruby-1.9.3-p194@proof/gems/railties-3.2.6/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

Если я запускаю какие-либо команды rake, происходит то же самое. Все мои другие приложения для рельсов работают нормально. Вот только этот (тот, который я не писал) не запускается.

Я вижу, что проблема здесь: CIRCAR_CP_NEW/config/initializers/registrations.rb:1

CIRCAR_CP_NEW/config/initializers/registrations.rb

module DeviseInvitable::Controllers::Registrations
  def self.included(controller)
   controller.send :around_filter, :keep_invitation_info, :only => :create
  end

 ...

    yield
    reset_invitation_info
  end if resource_invitable
  puts "Keep Invitation Info End"
  puts "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
end

Я просто понятия не имею, что с этим делать. Насколько я понимаю, Rails что-то ищет в этом каталоге.

devise_invitable/controllers/registrations

но не находит его, потому что этого каталога не существует. Судя по всему, код работает для разработчиков в Индии, но они не хотят помогать мне выяснять, почему он не работает на моей машине.

Я использую Ubuntu 12.04

Gemfile:

gem 'devise'
gem 'devise_invitable'

Пакетная установка

m@m-Lenovo-IdeaPad-Y470:~/Dropbox/software/Rails/CIRCAR_CP_NEW$ bundle install
Using rake (10.0.4)
...

Using devise (2.2.4) 
Using devise_invitable (1.1.8)

...

Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

person mujtaba    schedule 31.05.2013    source источник
comment
команда в Индии работает с RVM?   -  person Ricky Gu    schedule 31.05.2013


Ответы (2)


Вы уверены, что у вас есть драгоценные камни разработки:

e.g. bundle install


EDIT: Если мы знаем, что гемы были загружены, может возникнуть проблема с настроенными путями загрузки гема.

  1. Внутри irb или pry run Gem.path

  2. Проверьте каждый из возвращаемых путей для библиотек устройств. Если структура каталогов devise не найдена, мы нашли вашу проблему.

person crftr    schedule 31.05.2013
comment
Спасибо! Оказывается, структура драгоценного камня devise_invitable изменилась в более новых версиях. Ваша подсказка привела бы к этому открытию. - person mujtaba; 31.05.2013

Это была проблема совместимости драгоценных камней.

После версии 1.1.4 изменилась структура devise_invitable.

devise_invitable/controllers/registrations

больше не существует. Следовательно

module DeviseInvitable::Controllers::Registrations

необходимо изменить на

module DeviseInvitable::RegistrationsControllers

чтобы отразить структуру обновленного драгоценного камня.

Другим решением было бы добавить номер версии в файл gemfile и убедиться, что я использую совместимую версию, чтобы на все ссылались, как и ожидалось.

Команды server и rake теперь работают, но есть ряд других проблем, которые мне нужно решить сейчас :P

person mujtaba    schedule 31.05.2013