3

我刚刚建立了一个新的 Rails 4 实例并搭建了一个用户类。

每当我尝试导航到任何脚手架页面时,都会收到内部 500 错误:

Started GET "/users" for 127.0.0.1 at 2013-08-11 18:57:28 +1000
Processing by UsersController#index as HTML
  User Load (0.0ms)  SELECT "users".* FROM "users"
  Rendered users/index.html.erb within layouts/application (2.0ms)
Completed 500 Internal Server Error in 1585ms

ActionView::Template::Error (
  (in C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/turbolinks-1.3.0/lib/assets/javascripts/turbolinks.js.coffee)):
    3: <head>
    4:   <title>GlueFactory</title>
    5:   <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
    6:   <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
    7:   <%= csrf_meta_tags %>
    8: </head>
    9: <body>
  app/views/layouts/application.html.erb:6:in `_app_views_layouts_application_html_erb___1232737741_41577300'

我安装了 turbolinks 1.3.0 gem。如果我从 application.html.erb 中删除行 <%= javascript_include_tag "application", "data-turbolinks-track" => true %> ,如堆栈跟踪所示,它可以正常工作。

我认为这一定是我的 gem 环境的问题,因为我已将其上传到 Heroku,并且它从那里运行良好,包括 turbolinks 行。

捆绑展示:

  • actionmailer (4.0.0)
  • 动作包 (4.0.0)
  • 活动模型(4.0.0)
  • 活动记录(4.0.0)
  • activerecord-deprecated_finders (1.0.3)
  • 主动支持 (4.0.0)
  • 雷尔 (4.0.0)
  • 原子(1.1.12)
  • 建设者(3.1.4)
  • 捆绑器 (1.3.5)
  • 咖啡轨(4.0.0)
  • 咖啡脚本(2.2.0)
  • 咖啡脚本源 (1.6.3)
  • 厄鲁比斯 (2.7.0)
  • 执行js (1.4.0)
  • 远足 (1.2.3)
  • i18n (0.6.4)
  • jbuilder (1.5.0)
  • jquery-rails (3.0.4)
  • json (1.8.0)
  • 邮件 (2.5.4)
  • 哑剧类型 (1.23)
  • 迷你测试(4.7.5)
  • multi_json (1.7.8)
  • pg (0.16.0)
  • 多语言(0.3.3)
  • 机架 (1.5.2)
  • 机架测试(0.6.2)
  • 导轨 (4.0.0)
  • 铁路(4.0.0)
  • 耙子 (10.1.0)
  • rdoc (3.12.2)
  • 萨斯(3.2.10)
  • sass-rails (4.0.0)
  • sdoc (0.3.20)
  • 链轮 (2.10.0)
  • 链轮导轨 (2.0.0)
  • 雷神 (0.18.1)
  • 线程安全(0.1.2)
  • 倾斜 (1.4.1)
  • 树顶 (1.4.14)
  • 涡轮链接 (1.3.0)
  • tzinfo (0.3.37)
  • 丑化者 (2.1.2)
4

2 回答 2

6

我也看到了这个错误。这是 execjs 的编码问题。我在这个线程上找到了解决方案(这里)我选择了第三个选项——更令人满意!

于 2013-08-23T13:45:42.813 回答
3

我在 Ubuntu 14.04 上遇到了同样的问题。

rake about

报告找到了node js。

which node

给了

/usr/sbin/node

这实际上是ax25-node的符号链接。

基本上,rails 报告它在路径上找到了一个名为node的可执行文件,并假设它是nodejs

在我卸载包nodeax52-node并安装nodejs 包后,问题就消失了。

在 Windows 中,nodejs 可执行文件名为node。在 Linux 系统上 - 至少在我安装的 ubuntu 版本上 - 可执行文件的名称是 nodejs。我相信错误的原因是在运行时找不到合适的 JavaScript 解释器。

我希望它可以帮助某人。

于 2014-09-12T23:53:52.313 回答