为什么我必须在我的gemfile中添加execjs和therubyracer才能使用rails3.1?

时间:2011-09-23 15:29:47

标签: gem ruby-on-rails-3.1 execjs

我不喜欢在我不明白为什么有效的情况下。我觉得我正在使用垃圾袋和橡皮筋来固定漏水管道。自从升级到rails3.1以来,除非我将'execjs'和'therubyracer'添加到gemfile中,否则我无法使用它。我不明白这些宝石甚至做了什么。我刚刚读了stackoverflow上的某个地方你必须添加它们才能使应用程序正常工作。谁知道这些宝石是为了什么?

2 个答案:

答案 0 :(得分:19)

ExecJs - 让您能够执行Javascript

RubyRacer - 为您提供从Ruby到V8引擎的接口。

两者都是coffee-script gem的依赖项,Rails 3.1和资产管道使用它。

答案 1 :(得分:5)

ExecJS支持这些运行时:

therubyracer - 嵌入Ruby的Google V8

therubyrhino - 嵌入JRuby的Mozilla Rhino

Node.js的

Apple JavaScriptCore - 包含在Mac OS X中

Microsoft Windows脚本宿主(JScript)


不需要使用therubyracer,您可以使用任何js运行时,例如我使用Node.js。