therubyracer或nodejs,我应该使用哪个?

Dea*_*ean 13 javascript ruby rake ruby-on-rails ruby-on-rails-3

我正在关注新的Ubuntu 12.10上的ruby on rails入门指南.我要运行rake db:create但是我收到以下错误:

耙子流产了!找不到JavaScript运行时.有关可用运行时的列表,请参阅https://github.com/sstephenson/execjs.

我一直在搜索,建议的解决方案(见下面列表)是安装一些therubyracer或nodejs,但他们没有解释原因.

在我安装之前我想知道这些JavaScript运行时之间的差异以及为什么我会选择其中一个?

更新:

我刚看了https://github.com/sstephenson/execjs(我知道我应该先读这个,对不起)在我看来,execjs不是一个JavaScript运行时而且我已经拥有它...所以它归结为therubyracer和nodejs ...请原谅我的无知,我已经修改了我的问题

除了Intrepidd的回答:

轨道上红宝石入门指南支持Intrepidd的答案.请参见4.1"启动Web服务器"一节,其中说:

Rails在一个注释行中为新应用添加了therubyracer gem到Gemfile,如果需要,你可以取消注释.

对于那里的导轨noob(像我一样),GemFile位于rails应用程序的根文件夹中.在我的GemFile中取消注释该行后,我必须运行bundle install以安装therubyracer gem.

rub*_*ls3 11

您应该更喜欢NodeJS,therubyracer因为NodeJS的内存效率很高,但它可能不那么容易安装,尽管在Mac OS上它很容易,因此它在Ubuntu上.

  • 在Mac上,您可以使用简单的命令安装自制软件.`brew install node`就是它然后你可以通过在终端运行命令`node`来验证这个,然后验证你不再需要'gem"therubyracer"'行了,如果你在ubtuntu上部署你可以用`sudo apt-安装get install nodejs`我在heroku和rackspace上使用节点.在heroku上你不需要安装节点cuz它预先安装的rails. (2认同)

Int*_*idd 4

在 *NIX 系统上,您只需取消gem "therubyracer"gemfile 中的注释即可,这是最简单的。

  • 他们说“therubyracer”和“therubyracer-heroku”***强烈建议不要使用,因为这些宝石使用大量内存***,https://devcenter.heroku.com/articles/rails-asset-pipeline#therubyracer (4认同)