对象不支持此属性或方法 Rails Windows 64 位

Object doesn't support this property or method Rails Windows 64bit

本文关键字:Rails Windows 方法 不支持 属性 对象      更新时间:2023-09-26

我在Surface Pro 3上安装了Rails,并在尝试查看页面后遇到了此错误。我已经尝试了几个建议,例如使用 libv8 安装 rubyracer,但没有帮助。

类型错误: 对象不支持此属性或方法(在 c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)

这是我的宝石文件:

source 'http://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.8'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# 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
gem 'libv8', '~> 3.16.14.7'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
# Use debugger
# gem 'debugger', group: [:development, :test]
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin]
gem 'twitter-bootstrap-rails', :git => 'git://github.com/seyhunak/twitter-bootstrap-rails.git'
gem 'font-awesome-rails'
gem 'simple_form'
gem 'devise'

Coffee script 1.9.0 不能很好地与 Windows 配合使用。 在我的 Windows 7 机器上,使用 1.8.0 版解决了这个问题。

添加到宝石文件

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

然后,运行

bundle update coffee-script-source

并重新启动服务器(如果需要)

有同样的问题(对所有事情进行"hello world"应用程序......),但无法让 coffeescript 1.8.0 修复程序正常工作。 在这里找到解决方案:http://mech.xyz/how-to-fix-ruby-on-rails-turbolinks-js-coffee-error-windows/

步骤:

  1. 导航到 ''app''views''layouts''application.html.erb
  2. 将第 6 行从

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

<%= javascript_include_tag '**defaults**', 'data-turbolinks-track' => true %>

这样做了,现在工作正常。

与普遍的看法相反,Rails并不像他们声称的那样是跨平台兼容的。如果是这样,它可以在窗户上工作,开箱即用。 像你一样,我已经尝试了所有可用的选项。

这是使用 Ruby 2.1.5p273/Rails 4.2.0 解决的

我将execjs更改为将UTF-8与jscript一起使用,没有效果。这是通过编辑 C:''RailsInstaller''Ruby2.1.0''lib''ruby''gems''2.1.0''gems''execjs-2.2.2''lib''execjs''runtimes.rb 将 JScript = 块更改为以下内容来完成的。

JScript = ExternalRuntime.new(
  name:        "JScript",
  command:     "cscript //E:jscript //Nologo",
  runner_path: ExecJS.root + "/support/jscript_runner.js",
  encoding:    'UTF-8' # CScript with //U returns UTF-16LE
)

我还尝试安装therubyracer,这会导致libv8依赖项无法编译的问题。我将我的python 2.7安装添加到Windows系统路径中,并安装了libv8。然后它说安装了libv8,但是当我尝试安装therubyracer时,它说找不到libv8。我卸载了libv8并重试,它说libv8无法编译。这足以让我确定therubyracer无法在Windows上运行,所以我将其从Gemfile中注释掉,将python 2.7留在Windows系统路径上。

我更新了咖啡脚本源代码,通过将以下内容添加到我的 Gemfile 中

gem 'coffee-script-source', '1.9.0'

将咖啡脚本源添加到我的 Gemfile 后,我运行了 gem 更新咖啡脚本源,这也没有解决问题。

然后我安装了node.js,这工作了5分钟,直到我生成一个新的控制器,它又坏了。

注意:安装 node 后.js您需要打开一个新的命令提示符,以获取在安装 node.js 时设置的系统路径更新。

最后解决这个问题的是打开应用程序''资产''javascripts''application.js文件并删除最后一行

/

/= require_tree .

最后运行以下命令以确保咖啡脚本正确安装在 Node 中.js

npm install -g coffee-script
这是

由64位Windows和CoffeeScript gem之间的不兼容引起的。

这确实是一个CoffeeScript问题。它似乎只影响64位Windows计算机。32位Windows很好。

默认情况下,CoffeeScript 在 Rails 中出现在两个位置:

  • 默认的脚手架生成器创建一个咖啡脚本文件。
  • Turbolinks是CoffeeScript。

解决此问题的最简单方法是简单地删除CoffeeScript。反正你可能不需要它。

  1. 删除应用程序/资产/javascripts 中生成的 coffeeScript 文件。
  2. 从 gem 文件中删除涡轮链接 Gem,然后捆绑安装。
  3. 编辑资产/样式表/应用程序.js删除涡轮链接包含。

我发现你的错误看起来像这样ExecJS::RuntimeError on Windows 试图遵循 rubytutorial

我通过取消注释"资产''javascripts''应用程序.js中的行//= require_tree来修复我的系统

= require_tree