Подтвердить что ты не робот

JRuby on Rails: добавление папки в путь к классам

Я пытаюсь добавить всю папку в путь класса 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?

4b9b3361

Ответ 1

Требовать сначала java. Это делает переменную $CLASSPATH вживую.

include Java
$CLASSPATH << "your/folder"

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