ハックせずにjrubyをRails 4で動作させることはできませんでした:
railties/lib/rails/engine.rb では、Railties を const_get で初期化する必要がありました。
def railties
@railties ||= self.class.const_get(:Railties).new
# @railties ||= self.class::Railties.new
end
それ以外の場合は、次のようになります。
./bin/rake レーキが中止されました! 初期化されていない定数 Myapp::Application::Railties org/jruby/RubyModule.java:2677:in const_missing'
/Volumes/Opt/rails/rails-edge/railties/lib/rails/engine.rb:469:in
railties' /Volumes/Opt/rails/rails-edge/railties/lib/rails/application.rb:241:in run_tasks_blocks'
/Volumes/Opt/rails/rails-edge/railties/lib/rails/engine.rb:444:in
load_tasks' org/ jruby/RubyBasicObject.java:1659:in __send__'
org/jruby/RubyKernel.java:2086:in
send' /Volumes/Opt/rails/rails-edge/railties/lib/rails/railtie/configurable.rb:30:in method_missing'
/Volumes/Opt/projects/myapp/Rakefile:6:in
(root)' org/jruby/RubyKernel.java:1046 :in `ロード'
同じ理由で Rails 自体が起動しません。これは正しい修正ですか、それとも根本的な問題を隠しましたか?