1

我正在 MRI 2.0.0 上开发一个 rails 4.0.0.beta1 应用程序,看起来一切正常。我想尝试用 puma 在 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

我尝试用谷歌搜索,但找不到有关该错误的任何信息,有人知道如何解决此问题吗?

谢谢

4

1 回答 1

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')

享受!

于 2013-05-22T08:14:41.587 回答