运行rails app时出错 - ExecJS :: RuntimeError

时间:2011-12-02 20:48:41

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

我尝试使用Google搜索,但我还没有找到答案。

我正在尝试通过rails运行一个简单的控制器脚本,当我到达页面时它给了我这个错误。

ExecJS::RuntimeError in Say#hello

显然Say是控制器,hello是方法。在页面的下方,我可以获得有关错误的更多信息。

dyld: unknown required load command 0x80000022
(in /Users/JoeMoe/Sites/demoRails/app/assets/javascripts/say.js.coffee)

我已经检查了这个文件,除了注释代码之外没有任何内容。那里应该有什么东西吗?

以下是say.js.coffee文件中的内容

# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/

在页面下面,我看到我可以做一个显示我的应用程序跟踪。

app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__169683399_21885150'

我也可以做框架跟踪。顺便说一句,这将是一个很长的清单。

execjs (1.2.9) lib/execjs/external_runtime.rb:129:in `exec_runtime'
execjs (1.2.9) lib/execjs/external_runtime.rb:27:in `block in exec'
execjs (1.2.9) lib/execjs/external_runtime.rb:40:in `compile_to_tempfile'
execjs (1.2.9) lib/execjs/external_runtime.rb:26:in `exec'
execjs (1.2.9) lib/execjs/external_runtime.rb:18:in `eval'
execjs (1.2.9) lib/execjs/external_runtime.rb:32:in `call'
coffee-script (2.2.0) lib/coffee_script.rb:57:in `compile'
tilt (1.3.3) lib/tilt/coffee.rb:46:in `evaluate'
tilt (1.3.3) lib/tilt/template.rb:76:in `render'
sprockets (2.0.3) lib/sprockets/context.rb:175:in `block in evaluate'
sprockets (2.0.3) lib/sprockets/context.rb:172:in `each'
sprockets (2.0.3) lib/sprockets/context.rb:172:in `evaluate'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:171:in`build_dependency_context_and_body'
sprockets (2.0.3) lib/sprockets/bundled_asset.rb:135:in `dependency_context'
....

还有更多但很长的清单,我不想厌烦你。如果您需要完整列表,请告诉我,我会将其粘贴。

我正在使用以下内容运行Mac OS X. - Ruby 1.9.2 - Rails 3.1.0 - 宝石1.8.10 - sqlite3 3.7.9

6 个答案:

答案 0 :(得分:20)

你必须为javascript安装一个额外的gem。 编辑gemfile并添加gem'therubyracer'。然后,您可以运行bundle来安装新的gem。

这是您的详细解决方案: http://www.railszilla.com/2011/12/rails-3-coffescript-execjs/

答案 1 :(得分:18)

它也发生在我身上!您需要安装“ nodejs ”。当我使用Ubuntu Linux时,我做了:

apt-get install nodejs 

来源:http://forums.pragprog.com/forums/148/topics/9665#posts-26576(Sam Ruby的帖子)

答案 2 :(得分:5)

如果您在生产服务器中遇到此问题,则可能是由于内存使用情况。 在做资产预编译服务器时使用大量内存。

consider restarting your production server. 

答案 3 :(得分:3)

以上都不适合我。 。 。 我安装了gem 'coffee-script-source', '1.8.0'

然后应用程序开始运行没有任何问题。

答案 4 :(得分:0)

看起来你可能会错过一些宝石。

添加到您的Gemfile:

([^_\/]*)_

然后运行gem 'therubyracer' gem 'execjs' 进行安装。

答案 5 :(得分:0)

似乎缺少javascript运行器,您只需要这样做

gem 'therubyracer'

然后

 bundle install

如果正在使用生产服务器,则重新启动服务器,然后考虑重新启动生产服务器。

肯定会解决您的问题,

欢呼