2010-07-06 54 views
16

Tôi đang cố gắng thêm toàn bộ thư mục vào đường dẫn JRuby 1.5 cho ứng dụng Rails của mình. Các JRuby Wiki gợi ý như sau: "... thêm thư mục config vào classpath JRuby trong config/environment.rb:"JRuby on Rails: Thêm thư mục vào đường dẫn lớp

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

Đó dường như không làm việc cho tôi. Cho dù tôi đặt nó trước, sau hoặc bên trong khối Rails::Initializer.run thì cũng không thành vấn đề. Không có vấn đề gì, tôi nhận được:

/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 

Ví dụ, tôi đang cố gắng để thêm một thư mục dưới RAILS_ROOT gọi resources/foobar, vì vậy tôi thêm vào phần sau đây để environment.rb:

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

Cùng một lỗi.

Cách đúng để thêm thư mục vào đường dẫn JRuby bằng Rails là gì?

Trả lời

26

Yêu cầu java trước. Đó là những gì làm cho biến $ CLASSPATH sống.

Trong phiên bản trước 1.0 của JRuby, bạn sẽ làm require 'java' thay vào đó, nhưng trong JRuby hiện đại không hoạt động.

+0

Tuyệt vời. Đó là những gì tôi đã mất tích! – organicveggie

+0

Tôi đã cập nhật wiki JRuby cũng như để phản ánh yêu cầu đó. Cảm ơn một lần nữa. – organicveggie

+2

mặc dù nó là "bao gồm Java" thay vì "yêu cầu" java "" những ngày này (https://blogs.oracle.com/coolstuff/entry/using_java_classes_in_jruby). – ottobar

Các vấn đề liên quan