Rails-4,ExecJS :: PagesError中的ProgramError#welcome

时间:2015-01-30 18:04:35

标签: ruby-on-rails-4

我正在尝试将登录注销功能添加到我的rails应用程序中。为此我添加了bcrypt gem用于密码加密,还访问控制器。现在当我在本地运行它时,我收到一条错误消息。在添加上述功能之前,我的应用程序运行良好。

错误讯息:

TypeError: Object doesn't support this property or method
(in C:/DevKit/lib/ruby/gems/1.9.1/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)

Extracted source (around line #8):

<head>
  <title>PostApp</title>
  <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track'=>true %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track'=>true %>  ----> Line 8

      <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
      <%= csrf_meta_tags %>

的Gemfile:

source 'http://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.4'
# Use sqlite3 as the database for Active Record
group :development do
  gem 'sqlite3' 
end
group :production do
  gem 'pg'
end
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc

# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'

我不知道我得到的是什么类型的错误。知道可能会发生什么吗?

谢谢, Chuchoo

8 个答案:

答案 0 :(得分:42)

在Windows上运行coffee-script-source 1.9.0时出现问题。

似乎你必须将它添加到你的gemfile中:

gem 'coffee-script-source', '1.8.0'

然后做

bundle update coffee-script-source

答案 1 :(得分:2)

安装node.js x86 版本(非x64版本,即使有64位计算机)您可以从https://nodejs.org/en/download/下载

所有其他答案都不是必要的。

  • 不需要“coffee-script-source”或“execjs”
  • 甚至无需修改execjs文件
  • 当x86自动添加时,无需为Node.js添加路径

安装node.js后,需要重新启动rails服务器和运行它的CMD shell,以更新它将看到的路径。

答案 2 :(得分:1)

我遇到了同样的问题,我通过将以下代码添加到config \ initializer \ assets.rb来修复它

Rails.application.config.assets.precompile += %w( application.css )

答案 3 :(得分:0)

只需在上面的代码段中注释此行即可解决我的问题。

A || B

不确定这是否是首选解决方案,但可以肯定地帮助了我前进。

答案 4 :(得分:-2)

@Chuchoo,评论<%=javascript_include_tag 'application', 'data-turbolinks-track'=>true %>解决了这个问题。

对于那里的许多新手,有关如何获得解决方案的更多细节。

转到您的应用目录,然后从your_app&gt; app&gt; views&gt; layouts&gt; application.html.erb访问application.html.erb文件,并在第6行注释javascript。

<!--%= javascript_include_tag 'application', 'data-turbolinks-track' => true %-->

刷新你的页面,你很高兴。

答案 5 :(得分:-2)

取消注释(app / assets / javascripts / application.js)

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

答案 6 :(得分:-3)

转到您的app目录,然后在app / views / layouts中打开application.html.erb文件,并注释这两行(第5和第6行),如下所示:

 <!-- %= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> -->

刷新您的网页,您的问题就解决了!

答案 7 :(得分:-5)

你好我遇到了同样的问题你可以做到这一点:https://www.youtube.com/watch?v=N5i94L17KPo它现在适用于我。