2016-07-06 2 views
1

Я пытаюсь создать приложение с JRuby, Rails и Neo4j. Я попытался установить neo4j и запустить его с Rails 5.0.0, но у меня появилось несколько жалоб на отсутствие (???) activesupport gem. Что странно, потому что драгоценный камень указан, когда я запускаю «список драгоценных камней». Ну, я пробовал делать то же самое с помощью Rails 4.2.6. После многих временных ухищрений, чтобы устранить некоторые проблемы, описанные ниже, я, наконец, получил neo4j. Однако я не мог запустить сервер Rails, если я не прокомментировал почти каждую строку в confit/initializers/new_framework_defaults.rb. Вот сообщенные ошибки и то, как я с ними справлялся. Есть ли лучшее решение для этого, которое не подразумевает включение/отключение всех этих методов настройки?Проблемы с neo4j.rb, JRuby. Не удается запустить сервер rails

Может ли кто-нибудь предложить методы для решения или решения всех этих проблем?

  1. камень установить рельсы -v 4,2

  2. расслоение Exec рельсы новый MYAPP -m http://neo4jrb.io/neo4j/neo4j.rb

  3. кд MYAPP & & расслоение Exec грабли Neo4j: установить [сообщества последние]

    • Мне пришлось отключить действие «требовать» _cable/двигатель "" в конфигурации/application.rb
  4. START Neo4j: расслоение EXEC грабли Neo4j: начать

    PROBLEM 1: NameError: uninitialized constant ActiveSupport::EventedFileUpdateChecker

    • я отключил линию config.file_watcher = ActiveSupport :: EventedFileUpdateChecker
      в config/environment/development.rb. Затем перезапустите пакет exec rake neo4j: start.

    PROBLEM 2: NoMethodError: undefined method `to_time_preserves_timezone=' for ActiveSupport:Module.

    • Я закомментирована на линии ActiveSupport.to_time_preserves_timezone = TRUE
      в конфигурационном/инициализаторах/new_framework_defaults.rb: 15. Затем перезапустите пакет exec rake neo4j: start.

    PROBLEM 3: NoMethodError: undefined method 'halt_callback_chains_on_return_false=' for ActiveSupport:Module

    • Я закомментирована линии ActiveSupport.halt_callback_chains_on_return_false = ложной
      в конфигурационном/инициализаторах/new_framework_defaults.rb. Затем перезапустите пакет exec rake neo4j: start.

    PROBLEM 4: NoMethodError: undefined method `perform_caching=' for ActionMailer::Base:Class

    • Я тогда закомментировал линию config.action_mailer.perform_caching
      в конфигурации/application.rb: требуется "action_mailer/railtie"
    • Я также отметил следующие строки в config/environment/development config.action_mailer.raise_delivery_errors = ложь
      config.action_mailer.perform_caching = ложь

Затем снова побежал расслоение EXEC грабли Neo4j: Начало:

НАКОНЕЦ, IT РАБОТАЛ

5) Запуск двигателя be rails s

PROBLEM: "Rack app error: #< RuntimeError: Invalid option key: per_form_csrf_tokens=>"

Я установил Rails.application.config.action_controller.per_form_csrf_tokens = false
в config/initializers/new_framework_defaults.rb. Однако это не помогло. Ниже приводится полное сообщение об ошибке:

мне пришлось закомментировать строку Rails.application.config.action_controller.forgery_protection_origin_check = истина в конфигурации/Инициализаторы/new_framework_defaults.rb

  • Version 3.4.0 (JRuby 9.0.4.0 - рубин 2.2.2), кодовое: Сова Чаша Brawl
  • Минимум нитей: 5, макс резьбы: 5
  • Окружающая среда: развитие
  • прослушивает TCP: // локальный: 3000 Используйте Ctrl-C для остановки 2016-07-05 17:24:39 -0600: Ошибка при установке в стойку: # /Users/yandj/.gem/jruby/2.2.2/gems/actionpack-4.2.6/ lib/action_controller/railtie.rb: 59: в block in Railtie' org/jruby/RubyHash.java:1343:in каждый « /Users/yandj/.gem/jruby/2.2.2/gems/actionpack-4.2.6/lib/action_controller/railtie.rb:54:in block in Railtie' org/jruby/RubyBasicObject.java:1633:in instance_eval ' /Users/yandj/.gem/jruby/2.2.2/gems/activesupport-4.2.6/lib/active_support/lazy_load_hooks.rb:38:in execute_hook' /Users/yandj/.gem/jruby/2.2.2/gems/activesupport-4.2.6/lib/active_support/lazy_load_hooks.rb:45:in блок в run_load_hooks' org/jruby/RubyArray.java: 1560 : in each' /Users/yandj/.gem/jruby/2.2.2/gems/activesupport-4.2.6/lib/active_support/lazy_load_hooks.rb:44:in run_load_hooks ' /Users/yandj/.gem/jruby/2.2.2/gems/actionpack-4.2.6/lib/action_controller/base.rb:266:в <class:Base>' /Users/yandj/.gem/jruby/2.2.2/gems/actionpack-4.2.6/lib/action_controller/base.rb:164:in' /Users/yandj/.gem/ JRuby/2.2.2/драгоценные камни/actionpack-4.2.6/Библиотека/action_control ler/base.rb: 5: в <top>' /Users/yandj/.gem/jruby/2.2.2/gems/actionpack-4.2.6/lib/action_dispatch/middleware/static.rb:1:in (корень) ' /Users/yandj/.gem/jruby/2.2.2/gems/actionpack-4.2.6/lib/action_dispatch/middleware/static.rb:69:in ext' /Users/yandj/.gem/jruby/2.2.2/gems/actionpack-4.2.6/lib/action_dispatch/middleware/static.rb:27:in матч? ' /Users/yandj/.gem/jruby/2.2.2/gems/actionpack-4.2.6/lib/action_dispatch/middleware/static.rb:114:in call' /Users/yandj/.gem/jruby/2.2.2/gems/rack-1.6.4/lib/rack/sendfile.rb:113:in call ' /Users/yandj/.gem/jruby/ 2.2.2/gems/railties-4.2.6/lib/rails/engine.rb: 518: in call' /Users/yandj/.gem/jruby/2.2.2/gems/railties-4.2.6/lib/rails/application.rb:165:in call ' /Users/yandj/.gem/jruby/2.2.2/gems/rack-1.6.4/lib /rack/content_length.rb:15:in call' /Users/yandj/.gem/jruby/2.2.2/gems/puma-3.4.0-java/lib/puma/configuration.rb:224:in call ' /Users/yandj/.gem/jruby/2.2.2/gems/puma-3.4.0-java/lib/puma/server.rb:569:in handle_request' /Users/yandj/.gem/jruby/2.2.2/gems/puma-3.4.0-java/lib/puma/server.rb:406:in блок в process_client ' орг/JRuby/RubyProc.java: 318: в `вызов'

ответ

0

к сожалению, я думаю, что мы должны иметь пометку в нашем README об этом. Не могли бы вы попробовать филиал rails5?

gem 'neo4j', github: 'neo4jrb/neo4j', branch: 'rails5' 
+0

Hi Brian, Спасибо, что ответили. Я попробовал ваше предложение. Все еще не работает
Хранилище не найдено. Повторная попытка git clone 'git: //github.com/neo4jrb/neo4j.git.git' "/Users/yandj/.gem/jruby/2.2.2/cache/bundler/git/neo4j.git-c1a4e5d18f00aafb133aa5a89b740980e92b9867 "--bare --no-hardlinks --quiate из-за ошибки (2/4): Bundler :: Source :: Git :: GitCommandError Ошибка Git: команда' git clone 'git: //github.com/neo4jrb/neo4j.git.git' "/Users/yandj/.gem/jruby/2.2.2/cache/bundler/git/neo4j.git-c1a4e5d18f00aafb133aa5a89b740980e92b9867" --bare - no-hardlinks --quiet' в каталоге – Yann

+0

О, извините, '.git' не должно быть там. Просто изменил ответ, чтобы исправить это. Также, поскольку Rails 5 официально вышла сейчас, мы сейчас работаем над получением эта ветвь в выпуск 7.1.0 драгоценного камня –

+0

Я использовал это: gem 'neo4j', '~> 7.0.5', branch: 'rails5'. no change – Yann