2011-09-25 60 views
3

我是ruby和rails的新手,並且通過教程走路(爬行?)。第二個項目使用腳手架創建一個由姓名和電子郵件地址組成的用戶。當我嘗試查看用戶的屏幕,我得到如下:execjs在windows上執行michael hartl教程的問題...用戶中的ExecJS :: RuntimeError#index

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的,導軌3.1.0(我嘗試了新的RC1也),紅寶石1.8.7。

我在谷歌上發現了這個錯誤,據說有一個修復,我試過使用(execjs寶石1.2.9),但似乎並沒有解決它對我來說....我已經嘗試所有修復(盡我所能有限的紅寶石等能力),但似乎沒有工作,雖然錯誤信息有時是不同的 - 仍然在同一行的錯誤。

我試圖卸載並重新安裝的cygwin,紅寶石,導軌等。無濟於事到目前爲止...

任何反饋將是巨大的!

+0

這是ExecJS github上的一個問題,它可能有所幫助:https://github.com/sstephenson/execjs/issues/48 – kristianp

回答

0

正如有人誰試圖做的那本書上的窗戶,我有2個建議:

  1. 安裝Ubuntu到運行Ruby on Rails。這是一點點工作,但如果你要投入時間和精力,這是值得的100倍以上。您可以使用現有的窗口設置雙重安裝。或者,只需找到一臺舊電腦並將其安裝在那裏。它比Windows XP使用的功耗低得多,只有大約300 Mb的內存。

  2. 從開始使用Rails進行敏捷Web開發。 http://www.amazon.com/Agile-Development-Rails-Pragmatic-Programmers/dp/1934356549。這是一個更好的第一個教程。

+1

沒有做#2,但#1讓我在那裏,直到我得到老闆購買我是一個mac :) –

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

+0

therubyracer需要libv8,它不會安裝在Windows或Cygwin上。 – Chloe

+0

這就是爲什麼我在我的回答中聲明,它將在Ubuntu **上運行** - 所以感謝不合理的downvote! – klaffenboeck

+0

問題是關於Windows。 – Chloe

1

我也有這個問題的,它解決了安裝一個javascript運行時間:

sudo apt-get install nodejs

我遵循這個帖子:

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

祝你好運!

+1

這解決了我的問題。 – erturne

+1

apt-get不是Cygwin軟件包安裝程序。 – Chloe

+0

Cygwin使用'apt-cyg'進行包管理。 – wajatimur

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的工作,但這似乎解決我的問題現在。此外,我似乎有適當的prereq的,但如果您在配置或製作過程中遇到困難,那麼只需要搜索「逐步安裝nodejs cygwin」。

+2

這似乎是工作!使用ExecJS的Windows版本的NodeJS失敗。 – Chloe

+1

可以使用MinGW + MSYS構建最新的節點,也可以使用Cygwin進行一些修改,參見[本博文](http://opensourcepack.blogspot.co.uk/2013/06/nodejs-with-posix-路徑的support.html)。我不知道這是否也能解決這個問題。 – Oktalist

-1

運行

bundle install 

CMD,它會安裝一些新的寶石。

回到Cygwin和啓動您的服務器

rails s 

和一切都會好的。我有同樣的問題。 Cygwin似乎是這裏的問題。

-1

在windows上,我遇到了同樣的問題。似乎沒有安裝JavaScript解釋器來編譯在腳手架中使用的咖啡腳本。從http://nodejs.org/安裝node.js並重新啓動您用來運行rails的命令提示符,以便更新路徑。

我沒有安裝cygwin,所以無法編譯節點。

+0

Windows版本的NodeJS在使用ExecJS時出現此錯誤:'錯誤:無法找到模塊'C:\ tmp \ execjs20130226-3968-bapw1p.js'' – Chloe

+0

@Chloe,這是ExecJS github上的一個問題,它看起來像你已經寫了,它可能會有所幫助:https://github.com/sstephenson/execjs/issues/48。我只發佈了什麼對我有用,不知道downvote是什麼。 – kristianp

+0

以下是解決方案:http://stackoverflow.com/a/10114528/148844。問題在於Cygwin。 – Chloe

0

我有類似的問題。幫助我在Ruby 2.0.0上更新Ruby 1.9.3。

相關問題