使用美洲狮将一个rails4应用程序从MRI移植到JRuby,没有运气

时间:2013-05-17 08:11:35

标签: ruby-on-rails jruby jrubyonrails

我正在开发MRI 2.0.0上的rails 4.0.0.beta1应用程序并且看起来都很好用。我想尝试用美洲狮在JRuby上运行它。

$ ruby -v
jruby 1.7.3 (1.9.3p385) 2013-02-21 dac429b on Java HotSpot(TM) 64-Bit Server VM 1.6.0_45-b06-451-11M4406 [darwin-x86_64]

我用这种方式改变了我的Gemfile:

if defined?(JRUBY_VERSION)
  gem 'activerecord-jdbc-adapter', :require => false
  gem 'jdbc-mysql'
  gem 'puma'
else
  gem 'mysql2'
  gem 'thin', '1.5.1'
end

我做了捆绑安装(一切正常)。

当我尝试用

运行puma时
$ bundle exec puma

我收到了这个错误:

Puma 2.0.1 starting...
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://0.0.0.0:9292
NameError: uninitialized constant Foo::Application::Railties

我尝试谷歌,但我找不到有关错误的任何信息,有人知道如何解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:0)

最后我发现(幸运的是),我认为这是rc1上的一个rails问题,解决它把它放在你的Gemfile中

gem 'rails', github: 'rails/rails'

然后你会得到另一个错误

NameError: uninitialized constant ActionDispatch::Session::EncryptedCookieStore

您可以解决此问题,将'initializers / session_store.rb'更改为

Foo::Application.config.session_store :cookie_store, key: '_foo_session'

(在正确的地方注意你的应用名称,不要使用'Foo')

享受!