L’object non supporta questa proprietà o metodo Rails Windows 64bit

Ho installato Rails su Surface Pro 3 e ho riscontrato questo errore dopo aver provato a visualizzare una pagina. Ho provato diversi suggerimenti come l’installazione di rubyracer con libv8, ma non ha aiutato.

TypeError: Object non supporta questa proprietà o metodo (in c: /RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js. caffè)

Ecco il mio 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' 

Contrariamente alla credenza popolare, Rails NON è compatibile con piattaforms incrociate come affermano. Se lo fosse, funzionerebbe su Windows, fuori dalla scatola. Come te, ho provato ogni opzione disponibile.

Questo è stato risolto utilizzando Ruby 2.1.5p273 / Rails 4.2.0

Ho cambiato execjs per usare UTF-8 con jscript, nessun effetto. Questo è stato fatto modificando C: \ RailsInstaller \ Ruby2.1.0 \ lib \ ruby ​​\ gems \ 2.1.0 \ gems \ execjs-2.2.2 \ lib \ execjs \ runtimes.rb cambiando il blocco JScript = al seguente.

 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 ) 

Ho anche provato a installare therubyracer che porta a problemi con la dipendenza di libv8 che non si sta compilando. Ho aggiunto la mia installazione di python 2.7 al percorso di sistema di Windows e ho installato libv8. Quindi è stato installato libv8, ma quando ho provato ad installare therubyracer ha detto che non è stato ansible trovare libv8. Ho disinstallato libv8 e ho provato di nuovo e ha detto che libv8 non può essere compilato. Questo è stato abbastanza per me per determinare che therubyracer non avrebbe funzionato su Windows, quindi l’ho commentato dal mio Gemfile, lasciando python 2.7 sul mio percorso di sistema di Windows.

Ho aggiornato coffee-script-source, aggiungendo quanto segue al mio Gemfile

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

Dopo aver aggiunto coffee-script-source al mio Gemfile ho eseguito gem update coffee-script-source , anche questo non ha risolto il problema.

Ho quindi installato node.js, questo ha funzionato per 5 minuti fino a quando ho generato un nuovo controller, ed è stato interrotto di nuovo.

Nota: dopo aver installato node.js è necessario aprire un nuovo prompt dei comandi per ottenere gli aggiornamenti al percorso di sistema che vengono installati quando si installa node.js.

Infine, ciò che ha risolto questo problema è stato quello di aprire il file app \ assets \ javascripts \ application.js e rimuovere l’ultima riga che dice

// = require_tree.

Infine, esegui il seguente comando per assicurarti che coffee-script sia installato correttamente in Node.js

 npm install -g coffee-script 

Coffee script 1.9.0 non funziona bene con Windows. Sulla mia macchina Windows 7, utilizzando la versione 1.8.0 ho risolto questo problema.

Aggiungi a Gemfile

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

quindi, corri

 bundle update coffee-script-source 

e riavviare il server (se necessario)

Ho avuto lo stesso problema (facendo un’applicazione ‘ciao mondo’ di tutte le cose …) ma non ho potuto ottenere la correzione di coffeescript 1.8.0 per funzionare. Trovato una soluzione qui: http://mech.xyz/how-to-fix-ruby-on-rails-turbolinks-js-coffee-error-windows/

passi:

  1. Passare a \ app \ views \ layouts \ application.html.erb
  2. Cambia la linea 6 da

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

a

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

Questo e ha funzionato bene ora.

Ciò è causato da un’incompatibilità tra Windows a 64 bit e la gem CoffeeScript.

Questo è davvero un problema di CoffeeScript. Appare solo sulle macchine Windows a 64 bit. Windows a 32 bit va bene.

CoffeeScript si presenta in due posti per impostazione predefinita in Rails:

  • Il generatore di scaffold predefinito crea un file di script per il caffè.
  • Turbolinks è CoffeeScript.

Il modo più semplice per risolvere questo problema è semplicemente rimuovere CoffeeScript. Probabilmente non ne hai comunque bisogno.

  1. Elimina il file coffeeScript generato in app / assets / javascript.
  2. Rimuovi la gem turbolinks dal gemfile, quindi installa bundle.
  3. Modifica asset / stylesheets / application.js per eliminare i turbolinks.

Ho trovato il tuo errore simile a questo ExecJS :: RuntimeError su Windows cercando di seguire rubytutorial

Correzione sul mio sistema annullando la riga // = require_tree in ‘assets \ javascripts \ application.js’

 = require_tree