JRuby on Rails: добавление папки в путь к классам - PullRequest
16 голосов
/ 07 июля 2010

Я пытаюсь добавить целую папку в путь к классам JRuby 1.5 для моего приложения Rails. JRuby Wiki предлагает следующее: "... добавьте каталог конфигурации в путь к классам JRuby в config/environment.rb:"

$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, 'config'))}/"

Это мне не подходит.Неважно, поместил ли я это до, после или внутри блока Rails::Initializer.run.Независимо от того, что я получаю:

/home/sean/src/sbruby/seo/config/environment.rb:45:NoMethodError: undefined method `<<' for nil:NilClass
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/rails/backtrace_cleaner.rb:2:NameError: uninitialized constant ActiveSupport::BacktraceCleaner
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/console_with_helpers.rb:5:NameError: uninitialized constant ApplicationController

Например, я пытаюсь добавить папку под RAILS_ROOT с именем resources/foobar, поэтому я добавил следующее к environment.rb:

$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, "resources", "foobar"))}/"

Та же ошибка.

Как правильно добавить папку в путь к классам JRuby с помощью Rails?

1 Ответ

26 голосов
/ 07 июля 2010

Требуется Java в первую очередь. Вот что делает переменную $ CLASSPATH живой.

include Java
$CLASSPATH << "your/folder"

В версиях JRuby до 1.0 вы бы взяли require 'java', но в современном JRuby это не работает.

...