我rails 3.1.0.rc4在我的本地机器上创建了一个新的Rails项目但是当我尝试启动服务器时,我得到:找不到JavaScript运行时.有关可用运行时的列表,请参见此处.(ExecJS::RuntimeUnavailable)
注意:这不是关于Heroku的.
javascript ruby-on-rails node.js ruby-on-rails-3 ruby-on-rails-3.1
我收到这个错误:
耙子流产了!找不到JavaScript运行时.请参阅https://github.com/sstephenson/execjs,
我已经花了更多时间搜索谷歌然后我愿意承认.我相信这是一个execJs的bug.
从所有帖子中,这是rails 3.1的一个非常常见的问题.现在需要一个js运行时现在标准的宝石如coffee-script和sass.
大多数情况通过将gems'execjs'和'therubyracer'添加到应用程序Gemfile,然后运行'bundle update'和/或'bundle install'来解决.但不适合我.
我想我很幸运.我在旧版本的Redhat Linux 4(2.6.9-101.ELsmp)上运行rails 3.1.3/ruby 1.9,gcc是3.4.6.
其他报告的修复没有帮助,我无法安装'nodejs','johnson'或'mustang',其他运行时execJs应该找到并使用.他们不会在我的系统上进行/安装.
我需要解决导致execJs无法找到'therubyracer'的问题.这是Gemfile(和bundle install说好):
source 'http://rubygems.org'
gem 'rails', '3.1.3'
gem 'sqlite3'
gem 'sho-mongrel'
gem 'execjs'
gem 'therubyracer'
#gem "therubyracer", :require => 'v8'
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end
Run Code Online (Sandbox Code Playgroud)
这是一个痕迹:
~/rails/316-private-pub/chatter-after>rake db:create --trace
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs/runtimes.rb:50:in `autodetect'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:5:in `<module:ExecJS>'
/usr/local/lib/ruby/gems/1.9.1/gems/execjs-1.3.0/lib/execjs.rb:4:in `<top (required)>'
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in …Run Code Online (Sandbox Code Playgroud) ruby-on-rails ruby-on-rails-plugins ruby-on-rails-3.1 execjs
我使用RVM网站上提到的单个指令安装RVM(使用git).
然后我使用以下命令安装Ruby版本1.9.2和1.8.7:
rvm install 1.9.2
rvm install 1.8.7
Run Code Online (Sandbox Code Playgroud)
但是,我找不到Ruby二进制文件.当我尝试执行命令时,出现以下错误:
[root@server1 support]# rvm use 1.9.2
Using /usr/local/rvm/gems/ruby-1.9.2-p136
[root@server1 support]# ruby
-bash: ruby: command not found
Run Code Online (Sandbox Code Playgroud)
这是输出rvm info:
[root@server1 support]# rvm info
system:
system:
uname: "Linux server1.myserver.com 2.6.18-194.26.1.el5.028stab070.14 #1 SMP Thu Nov 18 16:34:01 MSK 2010 x86_64 x86_64 x86_64 GNU/Linux"
bash: "/bin/bash => GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)"
zsh: " => not installed"
rvm:
version: "rvm 1.2.6 by Wayne E. Seguin (wayneeseguin@gmail.com) [http://rvm.beginrescueend.com/]"
homes:
gem: "not set"
ruby: "not set" …Run Code Online (Sandbox Code Playgroud) 这是我得到的错误:
sergio@sergio-VirtualBox:~/blog$ rake db:create
rake aborted!
Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
(See full trace by running task with --trace)
sergio@sergio-VirtualBox:~/blog$
Run Code Online (Sandbox Code Playgroud)
所以经过一些搜索后,似乎我需要为Ruby安装一个Javascript运行时.
许多不同的选择之间有区别吗?似乎Node.js最容易安装,这会回来咬我还是这个选择好吗?
这个答案,似乎是我正在寻找的,但我不知道如何利用它.我在哪里可以找到这个"gemfile",它是每个rails项目文件还是全局ruby文件?我很困惑,似乎无法得到我的方位和多个答案相互矛盾,并没有解决问题.
将其添加到您的Gemfile中
gem'therubyracer',要求:"v8"
并运行
捆绑安装
我创建了一个简洁的Rails 3.1应用程序,名为demo1.它包含两个控制器 - 你好和再见.当我尝试加载http:// localhost:3000/say/hello时出现以下错误:
ActionView::Template::Error (
(in /home/me/dev/ruby/demo1/app/assets/javascripts/say.js.coffee)):
3: <head>
4: <title>Demo1</title>
5: <%= stylesheet_link_tag "application" %>
6: <%= javascript_include_tag "application" %>
7: <%= csrf_meta_tags %>
8: </head>
9: <body>
app/views/layouts/application.html.erb:6:in
`_app_views_layouts_application_html_erb___558576499_89622220'
Run Code Online (Sandbox Code Playgroud)
application.html.erb的问题在于:
<%= javascript_include_tag "application" %>
Run Code Online (Sandbox Code Playgroud)
当我使用Rails 3.0创建应用程序时,这个特定的行是:
<%= javascript_include_tag :defaults %>
Run Code Online (Sandbox Code Playgroud)
这很好用.事实上,当我将application.html.erb更改为使用时:defaults一切正常,但我想使用Rails 3.1的新功能.
我似乎无法在谷歌周围发现任何事情,我想因为Rails 3.1刚刚发布.
顺便说一下,我正在关注使用Rails的Agile Web开发的第一章(第4版)更新为Rails 3.1书.
一些环境信息可能有助于回答这个问题:
$ cat /etc/issue
Ubuntu 10.04.2 LTS \n \l
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
$ rails …Run Code Online (Sandbox Code Playgroud) 我正在使用最新版本的rails(3.1.3)启动一个新的rails应用程序.当我尝试启动服务器时Rails崩溃.首先我修复了这个bug,现在我得到了这个
ruby-debug-base19-0.11.25/lib/ruby_debug.so: undefined symbol: ruby_threadptr_data_type
Run Code Online (Sandbox Code Playgroud)
有一个关于这个事情的讨论在这里,但我不能让见识够了,把事情的工作.
我更新了ruby-debug的版本
gem 'ruby-debug-base19x', '~> 0.11.30.pre4'
Run Code Online (Sandbox Code Playgroud)
现在又转向了这个错误
linecache19-0.5.12/lib/trace_nums19.so: undefined symbol: ruby_current_thread
Run Code Online (Sandbox Code Playgroud) 我使用Ruby 1.9.3p0,Rails 3.1.2与Apache和Passenger in Production.当我尝试创建一个远程函数时,它会抛出这个错误:
ActionView::MissingTemplate (Missing template video/loadVideo, application/loadVideo with
{:handlers=>[:erb, :builder], :formats=>[:js, "application/ecmascript", "application/x-
ecmascript", :html, :text, :js, :css, :ics, :csv, :xml, :rss, :atom, :yaml,
:multipart_form, :url_encoded_form, :json], :locale=>[:en, :en]}. Searched in
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,没有处理程序:coffee,这就是为什么不处理文件video/loadVideo.js.coffee的原因 ; 我运行命令rake assets:precompile但没有任何变化.
Gemfile源'http://rubygems.org'
gem 'rails', '3.1.2'
# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem 'will_paginate', '~> 3.0'
gem "bcrypt-ruby", :require => "bcrypt"
gem 'mysql'
#Problems in Debian, the error was:
#Could not find a JavaScript …Run Code Online (Sandbox Code Playgroud) 我已经阅读了许多关于在rails中使用jquery的页面,但似乎无法让它工作.
我有'jquery-rails'宝石,我安装了.我在application.js文件中有require语句.
这是我一直在运行的测试页面:
<!DOCTYPE html>
<html>
<head>
<title><%= yield(:title)%></title>
<%= javascript_include_tag 'application','jquery', 'data-turbolinks-track' => true %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<script>$(document).ready(function(){
$(".bg-info").click(function(){
$(this).hide();
});
});</script>
</head>
<body>
<center>
<h1 class="bg-info"><%= yield(:title)%></h1>
</center>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但是,当我点击浏览器中的"bg-info"文本时,我得不到任何回复.
post-merge我的git存储库中有一个挂钩,它只运行jekyll命令.
当我跑步时git pull,post-merge跑步没有问题.
但是,我已经设置了一个PHP文件,它将充当远程的WebHook:
$pull = `cd .. && git pull`;
echo $pull;
Run Code Online (Sandbox Code Playgroud)
当我访问此文件时,git pull运行(在一些初始问题之后)并且成功.但是,由于某种原因post-merge失败了.如果我查看我的Apache内部error_log,我发现以下错误:
.git/hooks/post-merge: line 5: jekyll: command not found
考虑到post-merge当我git pull通过SSH 做手册时成功运行jekyll ,这很奇怪.
如果我运行使用这里建议的可执行文件的完整路径,我在我的错误中收到此错误error_log:
/usr/bin/env: ruby_noexec_wrapper: No such file or directory
我通过RVM安装了Ruby.
如何让apache用户运行jekyll没有问题?
编辑:这是我目前的post-merge:
#!/bin/sh
unset GIT_DIR
source /usr/local/rvm/environments/ruby-1.9.3-p194
/usr/local/rvm/gems/ruby-1.9.3-p194/bin/jekyll
echo "Deployed!"
Run Code Online (Sandbox Code Playgroud)
当我以apache用户身份运行时,我现在收到此错误:

Node.js已安装.
我开始学习Ruby on Rails,但现在已经停留在基本安装部分2天了.我正在按照一个教程提到用rails server命令启动服务器.
运行此命令,我得到以下输出:
$ rails server
/home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.4.0/lib/execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.4.0/lib/execjs.rb:5:in `<module:ExecJS>'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/execjs-1.4.0/lib/execjs.rb:4:in `<top (required)>'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `require'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee_script.rb:1:in `<top (required)>'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `require'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-script-2.2.0/lib/coffee-script.rb:1:in `<top (required)>'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `require'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194/gems/coffee-rails-3.2.2/lib/coffee-rails.rb:1:in `<top (required)>'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:68:in `require'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:66:in `each'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:66:in `block in require'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:55:in `each'
from /home/niranjan/.rvm/gems/ruby-1.9.3-p194@global/gems/bundler-1.1.5/lib/bundler/runtime.rb:55:in `require'
from …Run Code Online (Sandbox Code Playgroud) javascript ×3
ruby ×3
apache ×1
coffeescript ×1
execjs ×1
git ×1
jekyll ×1
jquery ×1
linux ×1
node.js ×1
passenger ×1
rake ×1
ruby-1.9.3 ×1
ruby-debug ×1
rvm ×1
webhooks ×1