为什么我必须将 execjs 和 therubyracer 添加到我的 gemfile 中才能让 Rails3.1 工作?
我不喜欢处于不明白某些事情为何有效的境地。我觉得我正在使用垃圾袋和橡皮筋来修复漏水的管道。自从升级到rails3.1以来,除非我将“execjs”和“therubyracer”添加到gemfile中,否则我无法让它工作。我不明白这些宝石到底有什么用。我刚刚在 stackoverflow 上读到,你必须添加它们才能使应用程序正常工作。有谁知道这些宝石有什么用吗?
I don't like being in situations where I don't understand why something is working. I feel like I am using a trash bag and a rubber-band to fix a leaky pipe. Since upgrading to rails3.1 I have not been able to get it to work unless I add 'execjs' and 'therubyracer' to the gemfile. I do not understand what these gems even do. I just read somewhere on stackoverflow that you had to add them for the app to work. Anyone know what these gems are for?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ExecJs - 使您能够执行 Javascript
RubyRacer - 为您提供从 Ruby 到 V8 引擎的接口。
两者都是
coffee-script
gem 的依赖项,Rails 3.1 和 asset pipeline 使用它。ExecJs - gives you the ability to, well - execute Javascript
RubyRacer - gives you the interface from Ruby to V8 engine.
Both are dependencies of the
coffee-script
gem, which is used by Rails 3.1 and the asset pipeline.ExecJS 支持以下运行时:
therubyracer - 嵌入 Ruby 中的 Google V8
therubyrhino - 嵌入 JRuby
Node.js
中的 Mozilla Rhino Apple JavaScriptCore - 包含在 Mac OS X
Microsoft Windows Script Host (JScript)
中therubyracer 不是必需的,您可以使用任何 js 运行时相反,例如我使用 Node.js。
ExecJS supports these runtimes:
therubyracer - Google V8 embedded within Ruby
therubyrhino - Mozilla Rhino embedded within JRuby
Node.js
Apple JavaScriptCore - Included with Mac OS X
Microsoft Windows Script Host (JScript)
therubyracer is not necessary, you can use any of the js runtimes instead, for example I use Node.js.