2013-05-17 53 views
1

我正在開發MRI 2.0.0上的軌道4.0.0.beta1應用程序和所有看起來工作。我想試着用Puma在JRuby上運行它。從MRI到JRuby移植一個rails4應用程序與美洲獅,沒有運氣

$ 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 

,我沒有捆綁安裝(一切OK)。

當我嘗試用

$ 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 

我tryed到谷歌,但我找不到任何有關錯誤信息,有人一個想法如何解決這個問題?

謝謝

+1

我猜你通過你的MRI環境安裝捆綁器時,「捆綁」可執行文件的路徑被放下。當你運行'jruby -S bundle exec puma'之類的東西時會發生什麼? –

+0

@ChrisMowforth我試過了,我得到了同樣的錯誤,你有什麼其他的想法嗎?感謝您的幫助 – SDp

回答

0

最後我發現(luckly),我認爲這是一個軌對RC1的問題,解決它把這個在您的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' 

(在你的應用程序的名稱注意在正確的地方,不要使用「富」)

享受!