Rails 5 - ExecJS :: RuntimeError

时间:2017-10-29 16:13:15

标签: javascript ruby-on-rails ruby ruby-on-rails-5 chartkick

我的项目工作正常,我正在调整使用chartkick创建的图表并使用ActionCable更新HTML徽章,突然间我收到此错误:

Pages#create_session

中的ExecJS :: RuntimeError
Showing B:/.../app/views/layouts/application.html.erb where line #7 raised:

SyntaxError: [stdin]:14:32: unexpected end of input
Extracted source (around line #7):              
5    <%= csrf_meta_tags %>
6    <%= javascript_include_tag "https://www.gstatic.com/charts/loader.js" %>
7    <%= javascript_include_tag 'application', 'chartkick' %>
8     <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
9     <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
10  </head>

Application Trace | Framework Trace | Full Trace
app/views/layouts/application.html.erb:7:in `_app_views_layouts_application_html_erb___430303067_44605968'
app/controllers/pages_controller.rb:145:in `render_page'
app/controllers/pages_controller.rb:46:in `create_session'

我用Google搜索并发现此错误表示我的系统上有problem with the JavaScript runtime(我正在使用Windows 10)。

我尝试过的事情:

  1. 删除 // = require_tree 。来自application.js - 对我不起作用,因为我的所有JavaScript代码都不再起作用了(我的项目使用ActionCable)
  2. 按原样修改C:\ RailsInstaller \ Ruby2.3.​​0 \ lib \ ruby​​ \ gems \ 2.3.0 \ gems \ execjs-2.7.0 \ lib \ execjs \ ru ntimes.rb {3}} - 没有修复它
  3. 添加'therubyracer'宝石 - 无法安装它,这是我得到的detailed here。这是完整的错误消息,然后就完成了。据我所知,它无法安装,因为没有安装Python 2?
  4. 根据建议error message,我添加了宝石'coffee-script-source' - 没有解决它,现在我无法删除它,因为突然其他宝石依赖它?怪异。
  5. 自从我开始这个项目以来,我已经安装了 Node.js ,所以不可能。
  6. 我正在使用Windows 10,Ruby 2.3.0和Rails 5.0.2,这是我当前的here

    这是我的application.js:

    //= require jquery
    //= require jquery_ujs
    //= require turbolinks
    //= require chartkick
    //= require_tree .
    

    我知道有很多关于这个问题的帖子,但在尝试了几乎所有的东西之后我都有点失落了......请帮忙! =)

2 个答案:

答案 0 :(得分:1)

在Ziyan Junaideens指针之后,我搜索了所有的CoffeeScript文件,最后发现我留下了一个未完成的方法调用...&gt; _&lt;

received: (data) ->
    App.online_status.  #<--- right here

那我学到了什么?当你累死的时候永远不要编程 - 或者你会花一整天的时间来寻找愚蠢的错误! ^^ *

答案 1 :(得分:0)

如果您有宝石#gem'therubyracer',:platform =>:ruby 更改为宝石“ mini_racer”