10

我正在考虑 JRuby on Rails 和我的产品的原始 Ruby on Rails 之间有什么区别?

它在开发活动、部署、原始支持或可扩展性方面有何不同?

我读过很多文章。他们说 JRuby 和 Ruby 的功能一样。这是否意味着我们可以为 JRuby 使用 Ruby gems,像 Ruby 一样使用脚手架和 ActiveRecord,我们也可以像 Java 一样部署产品?

4

6 回答 6

7

只有纯粹用 Ruby 编写的 gem 才能在 JRuby 下工作。RMagick 或 MySQL 之类的 Gem 或需要 C 扩展的 JSON(标准实现)在某些情况下会让您不走运,而在其他情况下使用 JDBC MySQL 和 JSON-JRuby gem 等替代方案。

于 2009-07-23T08:21:44.473 回答
3

See my answer here

Also, this is a handy reference: Is It JRuby

于 2009-07-24T01:13:54.093 回答
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 是最好的实现之一。

于 2009-07-23T08:17:43.407 回答
0

大多数(但不是全部)Ruby gem 也可用于 JRuby。Scaffold 和 ActiveRecord 绝对可以与 JRuby 一起使用。您不会发现 JRuby on Rails 缺少任何 RoR 功能。

使用 JRuby,您可以将应用程序部署为标准WAR。如果您不确定要使用原生 Ruby 还是 JRuby,我建议您使用 Netbeans IDE。有了它,您可以轻松地从原生 Ruby 切换到 JRuby for Rails 应用程序。

于 2009-07-23T08:07:43.130 回答
0

您不必为 JRuby 重新安装所有 gem。您所要做的就是将 GEM_HOME 环境变量设置为您的 gem 所在的路径。另请注意,JRuby 不支持本机扩展。因此,您必须为使用本机扩展的 gem 找到与 JRuby 兼容的替代品。

于 2009-09-28T13:58:27.623 回答
0

你可以阅读这个JRuby 描述

有一些关于 ruby​​ gem 以及 cloud jruby 如何使用它们的文本:

许多 Gem 可以在 JRuby 中正常工作;然而,一些 Gem 构建本地 C 库作为其安装过程的一部分。除非 Gem 还提供了与本机库等效的 Java,否则这些 Gem 将无法在 JRuby 中工作。

于 2014-03-26T02:08:14.967 回答