execjs在windows上做michael hartl教程的问题...用户#index中的ExecJS :: RuntimeError

时间:2011-09-25 22:03:04

标签: ruby-on-rails

通过本教程,我是ruby,rails和walk(crawling?)的新手。第二个项目使用scaffolding创建一个由名称和电子邮件地址组成的用户。当我尝试查看用户屏幕时,我得到以下内容:

ExecJS::RuntimeError in Users#index

Showing /home/max/rails_proj/demo_app/app/views/layouts/application.html.erb where line #6 raised:

湉異⁴牅潲㩲唠歮潮湷漠瑰潩⼢浴⽰硥捥獪〲ㄱ㤰㔲㐭㜲ⴲ㠱㝮穩ⴰ⸰獪•灳捥晩敩⹤਍
  (in /home/max/rails_proj/demo_app/app/assets/javascripts/users.js.coffee)
Extracted source (around line #6):

3: <head>
4:   <title>DemoApp</title>
5:   <%= stylesheet_link_tag    "application" %>
6:   <%= javascript_include_tag "application" %>
7:   <%= csrf_meta_tags %>
8: </head>
9: <body>
Rails.root: /home/max/rails_proj/demo_app

Application Trace | Framework Trace | Full Trace
app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb__1031573605_1065816420'
app/controllers/users_controller.rb:7:in `index'

我正在使用windows xp,cygwin,rails 3.1.0(我也试过了新的rc1),ruby 1.8.7。

我在谷歌上发现了这个错误,并且据说我尝试使用了一个修复程序(execjs gem 1.2.9),但这似乎并没有为我修复....我已经尝试了所有的修复程序(尽管我的有限ruby等能力最好)但似乎没有任何工作,虽然错误信息有时不同 - 仍然在同一行上的错误。

我试图卸载并重新安装cygwin,ruby,rails等......到目前为止无济于事......

任何反馈都会很棒!

7 个答案:

答案 0 :(得分:5)

我在cygwin上遇到了同样的错误。我尝试编译最新的node.js(v0.6.15),但它说不支持cygwin。旧版本似乎支持它所以这就是我做的:

wget http://nodejs.org/dist/node-v0.4.12.tar.gz
tar xvfz node-v0.4.12.tar.gz
cd node-v0.4.12/
./configure
make
make install

我不确定是否有一个比0.4.12更新的版本可以在cygwin下工作,但这似乎解决了我现在的问题。此外,我似乎有正确的先决条件,但如果您在配置或制作过程中遇到麻烦,那么只需按“逐步安装nodejs cygwin”进行搜索。

答案 1 :(得分:3)

我不确定这是否适用于您的情况,但在Ubuntu上您可以添加

gem 'therubyracer'

到您的Gemfile,它会正常工作。

另一个提示是在Gemfile中注释掉以下几行:

group :assets do
#  gem 'sass-rails', "  ~> 3.1.0"
#  gem 'coffee-rails', "~> 3.1.0"
#  gem 'uglifier'
end

因为那些是需要execjs的那些

答案 2 :(得分:1)

我也遇到了这个问题,解决了安装javascript运行时的问题:

  

sudo apt-get install nodejs

我关注这篇文章:

  

http://www.adanacs.com/node/3

祝你好运!

答案 3 :(得分:0)

作为试图在Windows上执行该书的人,我有两条建议:

  1. 安装Ubuntu以在rails上运行ruby。这是一个小工作,但如果你要投入时间和精力,它是值得的100倍。您可以使用现有窗口设置双重安装。或者,只需找到一台旧电脑并将其安装在那里。它使用的功率远低于windows xp,只有大约300 Mb的内存。

  2. 从使用Rails的Agile Web开始开始。 http://www.amazon.com/Agile-Development-Rails-Pragmatic-Programmers/dp/1934356549。这是一个更好的第一个教程。

答案 4 :(得分:0)

我有类似的问题。帮助我在Ruby 2.0.0上更新了Ruby 1.9.3。

答案 5 :(得分:-1)

运行

bundle install

cmd 中,它会安装一些新的宝石。

返回cygwin并启动服务器

rails s

一切都会好的。我有同样的问题。 Cygwin似乎是这里的问题。

答案 6 :(得分:-1)

在Windows上,我遇到了同样的问题。似乎没有安装javascript解释器来编译脚手架中使用的coffeescript。从http://nodejs.org/安装node.js并重新启动用于运行rails的命令提示符,以便更新路径。

我没有安装cygwin,所以我无法编译节点。