2009-07-23 22 views
10

我在考慮JRuby on Rails和我的產品的原始Ruby on Rails之間的區別是什麼?JRuby可以使用原始的Ruby寶石嗎?

它在開發活動,部署,原始支持或可伸縮性方面有什麼不同?

我讀過很多文章。他們說JRuby和Ruby一樣是一樣的功能。這是否意味着我們可以使用Ruby gems作爲JRuby,使用像Ruby這樣的腳手架和ActiveRecord,並且我們也可以部署像Java這樣的產品?

回答

0

大多數但不是全部的Ruby寶石也可用於JRuby。腳手架和ActiveRecord絕對可以用於JRuby。您將無法找到JRuby on Rails中缺少的任何RoR功能。

使用JRuby,您可以將您的應用程序部署爲標準WAR。如果您不確定是否要使用本地Ruby或JRuby,我建議您使用Netbeans IDE。有了它,您可以輕鬆地從本地Ruby切換到JRuby for Rails應用程序。

0

JRuby是Ruby的完整實現,它們是相同的,但JRuby在JVM上運行。它的擴展性非常好,因爲您可以將它部署在像Glassfish或JBoss這樣的應用服務器中。

您可以使用Rails,當然,只有一個配置要做,數據庫適配器。您必須安裝JDBC適配器ActiveRecord的,例如:

gem install activerecord-jdbcmysql-adapter 

,並在您的database.yml

adapter: jdbcmysql 

就大功告成了!

編輯:

如果你有興趣有http://www.infoq.com/presentations/seifer-ruby-vm-comparison各種Ruby實現之間的比較,和JRuby是最好的實現之一。

7

只有在Ruby中純粹編寫的gem才能在JRuby下工作。諸如RMagick或MySQL之類的寶石或者需要C擴展的JSON(的標準實現)將在某些情況下讓你失去運氣,並且在其他情況下可能會帶來諸如JDBC MySQL和JSON-JRuby等其他選擇。

3

見我的回答here

此外,這是一個方便的參考: Is It JRuby

+3

該網頁不再存在。 – 2013-09-15 23:34:22

0

您不必重新安裝所有的寶石JRuby的。你所要做的就是將GEM_HOME環境變量設置爲你的gem路徑。另請注意,JRuby不支持本機擴展。所以你必須爲使用原生擴展的gem找到JRuby兼容的替代品。

0

您可以閱讀JRuby description

有關於Ruby寶石以及如何雲JRuby中使用它們的一些文字:

許多寶石將在JRuby中正常工作;然而,一些Gems將其本地C庫作爲其安裝過程的一部分。除非Gem還提供了與本地庫等效的Java,否則這些Gem將無法在JRuby中使用。