Подтвердить что ты не робот

Объект не поддерживает это свойство или метод Rails Windows 64bit

Я установил Rails на свой Surface Pro 3 и запустил эту ошибку после попытки просмотра страницы. Я попробовал несколько предложений, таких как установка rubyracer с libv8, но это не помогло.

TypeError: объект не поддерживает это свойство или метод (в C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/turbolinks-2.5.3/lib/assets/javascripts/turbolinks.js.coffee)

Вот мой 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'
4b9b3361

Ответ 1

Вопреки распространенному мнению, 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 не будет работать на окнах, поэтому я прокомментировал это из своего Gemfile, оставив python 2.7 на моем системном пути Windows.

Я обновил coffee- script -source, добавив следующее в мой Gemfile

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

После добавления кофе- script -source в мой Gemfile я запустил gem update coffee- script -source, это также не решило проблему.

Затем я установил node.js, это работало 5 минут, пока я не сгенерировал новый контроллер, и он был сломан снова.

Примечание. После установки node.js вам нужно открыть новую командную строку, чтобы получить обновления к системному пути, которые устанавливаются при установке node.js.

Наконец, исправленная эта проблема заключалась в том, чтобы открыть файл app\assets\javascripts\application.js и удалить последнюю строку, в которой говорится

//= require_tree.

Наконец, выполните следующую команду, чтобы убедиться, что кофе- script правильно установлен в node.js

npm install -g coffee-script

Ответ 2

Кофе script 1.9.0 не очень хорошо работает с Windows. На моей машине с Windows 7 с использованием версии 1.8.0 была решена эта проблема.

Добавить в Gemfile

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

затем запустите

bundle update coffee-script-source

и перезагрузите сервер (при необходимости)

Ответ 3

Имел ту же самую проблему (делая приложение "привет мир" всех вещей...), но не смог заставить исправление coffeescript 1.8.0 работать. Здесь найдено решение: http://mech.xyz/how-to-fix-ruby-on-rails-turbolinks-js-coffee-error-windows/

Шаги:

  • Перейдите в \app\views\layouts\application.html.erb
  • Измените строку 6 из

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

к

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

Разве это и теперь отлично работает.

Ответ 4

Это вызвано несовместимостью между 64-битной Windows и жемчужиной CoffeeScript.

Это действительно проблема CoffeeScript. По-видимому, это влияет на 64-битные машины Windows. 32-разрядная Windows - это нормально.

В Rails код CoffeeScript выполняется по умолчанию в двух местах:

  • Генератор эшафотов по умолчанию создает файл кофе script.
  • Turbolinks - это CoffeeScript.

Самый простой способ исправить это - просто удалить CoffeeScript. Вероятно, вам это не понадобится.

  • Удалить сгенерированный файл CoffeeScript в app/assets/javascripts.
  • Удалите драгоценный камень turbolinks из gemfile, затем установите пакет.
  • Изменить атрибуты /stylesheets/application.js для удаления турбонасосов.