相关疑难解决方法(0)

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

我正在关注新的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.

javascript ruby rake ruby-on-rails ruby-on-rails-3

13
推荐指数
2
解决办法
8691
查看次数

Rails/execjs找不到Node.js.

我通过从root用户编译和安装来安装node.js. 我想这可能是挂断的地方.从运行rails应用程序的用户我检查了node.js.

$ which node
/usr/local/bin/node
Run Code Online (Sandbox Code Playgroud)

当我启动我的rails应用程序(Rails 3.2.9)时,我得到普遍无益的"我们很抱歉,但出了点问题." 检查生产错误日志我发现找不到Javascript运行时.这显然是安装的,这令人困惑.所以我开始强制使用Node javascript运行时.我编辑了config/boot.rb以包含:

ENV['EXECJS_RUNTIME'] = 'Node'
Run Code Online (Sandbox Code Playgroud)

我在查看生产日志时再次检查了我的应用程序.这次我收到了错误

ActionView::Template::Error (Node.js (V8) runtime is not available on this system
Run Code Online (Sandbox Code Playgroud)

仍然困惑.我去了execjs gem并将runtime命令更改为确切的安装路径.

Node = ExternalRuntime.new(
  :name        => "Node.js (V8)",
  :command     => "/usr/local/bin/node",
  :runner_path => ExecJS.root + "/support/node_runner.js",
  :encoding    => 'UTF-8'
)
Run Code Online (Sandbox Code Playgroud)

我仍然得到同样的错误.节点已安装并可由用户访问,但gem/rails似乎无法使用它.服务器运行CentOS 6.3.导致错误被抛出的特定javascript文件是jquery.nivo.slider.pack.js.从nivo下载后我没有编辑.

ruby centos ruby-on-rails node.js execjs

5
推荐指数
2
解决办法
7506
查看次数