对于 Rails 和 Neo4j.rb,我应该使用 JRuby 还是 Ruby?

Should I use JRuby or Ruby for Rails with Neo4j.rb?

我正在使用 Neo4j.rb 将 Neo4j 图形数据库与 Rails 集成。

我应该使用 JRuby 还是 Ruby?

将 neo4j.rb 与 JRuby 和 Ruby 一起使用时有什么区别(任何 pros/cons)?

一些示例告诉我们使用 JRuby,我也能够使用 Ruby 执行 Rails 应用程序。

Neo4j.rb 与 ruby 搭配效果最好,因为 rails 你应该选择它

我是 Neo4j.rb 的维护者之一,您可以将它与 JRuby 以及官方解释器 (MRI/KRI/whetever 一起使用。我称之为 MRI从这里开始了)。那里有很多过时的信息,因为在版本 2.x 和之前的版本中 gem DID 需要 JRuby。从 3.0 版开始不再需要它。

gem 尚未(尽管可能应该)与其他解释器一起测试。

gem同时支持serverembedded模式。

  • 服务器:使用 REST API
  • 连接到外部 Neo4j 数据库实例
  • 嵌入式:运行 Ruby 进程中的 Neo4j

MRI 和 JRuby 都支持服务器。嵌入式仅在 JRuby.

下受支持

嵌入式模式的优点是通过 Neo4j Java APIs 直接访问数据库,这让你的速度更快,但更复杂。一个缺点是你的 ruby 进程现在是你的服务器进程,所以如果你想 deploy/do 维护,它会变得更棘手。

服务器模式的优点是可以很好地分离关注点。通过密码查询连接相对简单。

在服务器模式下,您可以使用 ActiveNode 和 ActiveRel。事实上,我敢打赌你也可以使用嵌入式的 ActiveNode 和 ActiveRel,虽然我自己几乎没有使用嵌入式模式,所以我不能肯定。