我正在考虑JRuby on Rails和我的产品的原始Ruby on Rails有什么区别?
它在开发活动,部署,原始或可伸缩性之间的支持方面有何不同?
我看过很多文章。他们说JRuby和Ruby一样功能。这是否意味着我们可以将Ruby gems用于JRuby,使用scaffold和像Ruby这样的ActiveRecord,我们还可以像Java一样部署产品吗?
答案 0 :(得分:7)
只有纯粹用Ruby编写的gem才能在JRuby下运行。像RMagick或MySQL的Gems或需要C扩展的JSON(标准实现)将在某些情况下让你失去运气,在其他情况下使用JDBC MySQL和JSON-JRuby gems等替代品。
答案 1 :(得分:3)
请参阅我的回答here
此外,这是一个方便的参考: Is It JRuby
答案 2 :(得分:0)
大多数(但不是全部)Ruby宝石也可用于JRuby。 Scaffold和ActiveRecord绝对可以与JRuby一起使用。您将找不到JRuby on Rails中缺少的任何RoR功能。
使用JRuby,您可以将应用程序部署为标准WAR。如果您不确定是否要使用本机Ruby或JRuby,我建议您使用Netbeans IDE。有了它,您可以轻松地从原生Ruby切换到JRuby for Rails应用程序。
答案 3 :(得分:0)
JRuby是Ruby的完整实现,它们是相同的,但JRuby在JVM上运行。它可以很好地扩展,因为您可以将它部署在像Glassfish或JBoss这样的应用程序服务器中。
当然,你可以使用Rails,只有一个配置,数据库适配器。您必须为ActiveRecord安装JDBC适配器,例如:
gem install activerecord-jdbcmysql-adapter
并在您的database.yml
中adapter: jdbcmysql
你已经完成了!
编辑:
如果你感兴趣的是各种Ruby实现之间的比较,http://www.infoq.com/presentations/seifer-ruby-vm-comparison和JRuby是最好的实现之一。
答案 4 :(得分:0)
您无需为JRuby重新安装所有宝石。您所要做的就是将GEM_HOME环境变量设置为包含宝石的路径。另请注意,JRuby不支持本机扩展。所以你必须找到使用原生扩展的宝石的JRuby兼容替代品。
答案 5 :(得分:0)
您可以阅读此JRuby description
有一些关于ruby gem以及cloud jruby如何使用它们的文本:
许多宝石在JRuby中都能正常工作;但是,一些Gems构建了本机C库作为其安装过程的一部分。除非Gem还提供了与本机库等效的Java,否则这些Gems将无法在JRuby中运行。