web-dev-qa-db-ja.com

オブジェクトはこのプロパティまたはメソッドをサポートしていませんRails Windows 64bit

Surface Pro 3にRailsをインストールし、ページを表示しようとした後にこのエラーに遭遇しました。

TypeError:オブジェクトはこのプロパティまたはメソッドをサポートしていません(c:/RailsInstaller/Ruby2.0.0/lib/Ruby/gems/2.0.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.jsで。コーヒー)

ここに私のgemfileがあります:

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'
42
Matt P

一般的な信念に反して、Railsは彼らが主張するようにクロスプラットフォーム互換ではありません。それがWindowsで動作する場合、そのままで使用できます。

これはRuby 2.1.5p273/Rails 4.2.0を使用して解決されました

ExecjsをjscriptでUTF-8を使用するように変更しましたが、効果はありません。これは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
)

また、コンパイルしないlibv8依存関係の問題につながるtherubyracerをインストールしようとしました。 python 2.7インストールをWindowsシステムパスに追加し、libv8をインストールしました。その後、libv8がインストールされましたが、rubyracerをインストールしようとすると、libv8が見つかりません。もう一度試してみたところ、libv8をコンパイルできないと言われました。therubyracerがWindowsで動作しないことを判断するのに十分だったので、Gemfileからコメントアウトして、python 2.7 Windowsシステムパスで。

以下をGemfileに追加して、coffee-script-sourceを更新しました

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

Coffee-script-sourceをGemfileに追加した後、gem update coffee-script-sourceを実行しましたが、これも問題を解決しませんでした。

次にnode.jsをインストールしましたが、これは新しいコントローラーを生成するまで5分間機能し、再び壊れました。

注:node.jsをインストールしたら、新しいコマンドプロンプトを開いて、node.jsのインストール時にセットアップされたシステムパスの更新を取得する必要があります。

最後に、この問題を修正したのは、app\assets\javascripts\application.jsファイルを開いて、最後の行を削除することでした

// = require_tree。

最後に次のコマンドを実行して、coffee-scriptがNode.jsに正しくインストールされていることを確認します

npm install -g coffee-script
8
Ralph Ritoch

Coffee script 1.9.0は​​Windowsではうまく機能しません。私のWindows 7マシンでは、バージョン1.8.0を使用してこの問題を解決しました。

Gemfileに追加

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

その後、実行します

bundle update coffee-script-source

サーバーを再起動します(必要な場合)

106
Jessa

同じ問題がありましたが(すべてを「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 %>

これをやったとそれは今うまくいっている。

15
Jaime

これは、64ビットWindowsとCoffeeScript gemの非互換性が原因です。

これは確かにCoffeeScriptの問題です。 64ビットWindowsマシンにのみ影響があるようです。 32ビットWindowsで問題ありません。

Railsでは、CoffeeScriptはデフォルトで2つの場所で発生します。

  • デフォルトのscaffoldジェネレーターは、コーヒースクリプトファイルを作成します。
  • TurbolinksはCoffeeScriptです。

これを修正する最も簡単な方法は、CoffeeScriptを単純に削除することです。とにかくおそらく必要ないでしょう。

  1. App/assets/javascriptsで生成されたcoffeeScriptファイルを削除します。
  2. Turbolinks gemをgemfileから削除してから、バンドルインストールします。
  3. Asset/stylesheets/application.jsを編集して、ターボリンクを削除します。
7
superluminary

エラーは次のように見えます rubytutorialをたどろうとしているWindows上のExecJS :: RuntimeError

'assets\javascripts\application.js'の行// = require_treeのコメントを外して、システム上で修正します。

= require_tree
4
suhao399