2014-09-10 77 views
-1

我对轨道上的红宝石非常陌生。我听说rails上的ruby需要运行java虚拟机。红宝石在轨道上 - 是否有任何包装或模块不是用纯红宝石书写的?

我想问一些关于轨道上的红宝石的基本的东西。

看起来像rails上的ruby可以在源代码中有一些本地代码。

从我研究过的有关rails的ruby中,代码通常可以在代码编写的相同平台上运行。

所以当我们需要在不同的平台上运行代码时,使用Bundler(rubygems),它可以自动下载正确版本的包。

这是正确的?

此外,对于软件包,有没有任何包装或模块不是纯红宝石?

我不确定是否有。如果有的话,我认为软件包管理器不能自动下载正确的版本,开发人员需要将其拔出并对其他机器上的部署进行更改。

我不确定如何查看包中的包依赖关系。 有没有办法找到包依赖?

+0

对不起,Stack Overflow不是解释某种编程语言的基础知识的地方。在这里带着一个特定的代码问题,展示你为解决问题所做的努力,并且我们可以谈论。 – lxg 2014-09-10 18:37:09

回答

0

不清楚你问的是什么问题,但也许我可以解决你的一些困惑。

Rails是一个框架,作为Ruby gem包分发,作为Ruby应用程序的一部分在几个可用的Ruby解释器之一上运行。

Ruby和Rails都不依赖于JVM。如果您选择,JRuby解释器允许您在JVM中运行Ruby代码。

许多Ruby宝石包括可能取决于平台的本机扩展。 Bundler允许您在需要使用不同宝石在不同平台上提供相同接口的情况下表达特定于平台的依赖关系。查看Bundler的platform命令,以检查当前平台是否满足给定gemfile的要求。

例如,sqlite3 gem需要本地C扩展,无法编译为在JRuby平台上运行。支持JRuby的项目必须替换为activerecord-jdbcmysql-adapter宝石。

+0

非常感谢你!现在一切都开始对我有意义了。 – Erica 2014-09-10 20:26:54