我正在考虑 JRuby on Rails 和我的产品的原始 Ruby on Rails 之间有什么区别?
它在开发活动、部署、原始支持或可扩展性方面有何不同?
我读过很多文章。他们说 JRuby 和 Ruby 的功能一样。这是否意味着我们可以为 JRuby 使用 Ruby gems,像 Ruby 一样使用脚手架和 ActiveRecord,我们也可以像 Java 一样部署产品?
我正在考虑 JRuby on Rails 和我的产品的原始 Ruby on Rails 之间有什么区别?
它在开发活动、部署、原始支持或可扩展性方面有何不同?
我读过很多文章。他们说 JRuby 和 Ruby 的功能一样。这是否意味着我们可以为 JRuby 使用 Ruby gems,像 Ruby 一样使用脚手架和 ActiveRecord,我们也可以像 Java 一样部署产品?
只有纯粹用 Ruby 编写的 gem 才能在 JRuby 下工作。RMagick 或 MySQL 之类的 Gem 或需要 C 扩展的 JSON(标准实现)在某些情况下会让您不走运,而在其他情况下使用 JDBC MySQL 和 JSON-JRuby gem 等替代方案。
See my answer here
Also, this is a handy reference: Is It JRuby
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 是最好的实现之一。
大多数(但不是全部)Ruby gem 也可用于 JRuby。Scaffold 和 ActiveRecord 绝对可以与 JRuby 一起使用。您不会发现 JRuby on Rails 缺少任何 RoR 功能。
使用 JRuby,您可以将应用程序部署为标准WAR。如果您不确定要使用原生 Ruby 还是 JRuby,我建议您使用 Netbeans IDE。有了它,您可以轻松地从原生 Ruby 切换到 JRuby for Rails 应用程序。
您不必为 JRuby 重新安装所有 gem。您所要做的就是将 GEM_HOME 环境变量设置为您的 gem 所在的路径。另请注意,JRuby 不支持本机扩展。因此,您必须为使用本机扩展的 gem 找到与 JRuby 兼容的替代品。
你可以阅读这个JRuby 描述
有一些关于 ruby gem 以及 cloud jruby 如何使用它们的文本:
许多 Gem 可以在 JRuby 中正常工作;然而,一些 Gem 构建本地 C 库作为其安装过程的一部分。除非 Gem 还提供了与本机库等效的 Java,否则这些 Gem 将无法在 JRuby 中工作。