2016-05-02 4 views
0

Я создаю новое приложение с нуля. Просто началось на прошлой неделе обучение RoR. Я слежу за учебниками, которые отлично работают кроме:Ошибка при изменении «по умолчанию» на «приложение» в stylesheet_link_tag из application.html.erb с использованием Ruby on Rails

Я пытался установить Bootstrap, когда возникла ошибка.

SO:

Windows 10 

Версии среде я работаю являются:

Ruby 2.2.4 Rails 4.2.5.1 

Далее следуют инструкции https://github.com/twbs/bootstrap-sass шаг за шагом. (Установленные драгоценные камни, положить @import линии и т.д.)

Я получаю ошибку заключается в следующем:

ExecJS::ProgramError......application.html.erb where line #5 raised:TypeError: Object doesn't support this property or method

Googled и нашел решение:

Если я изменяю 'default' из 'application' в application.html.erb Ошибка исчезает, , но я не получаю стиль автозагрузки. Все возвращается к нормальной жизни.

Файлы:

Gemfile

source 'https://rubygems.org' 

gem 'rails', '4.2.5.1' 
gem 'sass-rails', '~> 5.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.1.0' 
gem 'jquery-rails' 
gem 'turbolinks' 
gem 'jbuilder', '~> 2.0' 
gem 'sdoc', '~> 0.4.0', group: :doc 

gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 

group :development, :test do 
    gem 'sqlite3' 
    gem 'byebug' 
end 

group :development do 
    gem 'web-console', '~> 2.0' 
end 

group :test do 
    gem 'minitest-reporters' 
    gem 'mini_backtrace' 
    gem 'guard-minitest' 
end 

group :production do 
    gem 'pg' 
    gem 'rails_12factor' 
end 

application.css.scss

/* 
* This is a manifest file that'll be compiled into application.css, which will include all the files 
* listed below. 
* 
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. 
* 
* You're free to add application-wide styles to this file and they'll appear at the bottom of the 
* compiled file so the styles you add here take precedence over styles defined in any styles 
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new 
* file per style scope. 
* 
*/ 

@import "bootstrap-sprockets"; 
@import "bootstrap"; 

application.js

// This is a manifest file that'll be compiled into application.js, which will include all the files 
// listed below. 
// 
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, 
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path. 
// 
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the 
// compiled file. 
// 
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details 
// about supported directives. 
// 
//= require jquery 
//= require jquery_ujs 
//= require turbolinks 
//= require bootstrap-sprockets 

application.html.erb

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

Другой вопрос, который я встречаю:

При использовании link_to для действия destroy, ничего, кажется, меняется.

Googling, я обнаружил, что если я перехожу на button_to, действие destroy прекрасно работает, но это проблема, я думаю, что ее нужно исправить.

+0

Пожалуйста, вставьте в вашем application.css.scss, файл, где вы включаете самозагрузки CSS (может быть что угодно.scss, как раз все, что имеет ваши строки импорта), ваш application.js или application.coffee, и ваш application.html.erb. Эта строка просто означает, что она не могла правильно прочитать скомпилированные активы, чтобы знать, почему их легче видеть. – trh

+0

Хорошо, отредактировал OP. – aleherzko

+0

ok - используйте 'defaults' в js include, чтобы обойти потенциальную ошибку windows/js. Однако НЕ используйте значения по умолчанию в стиле stylesheet_link_tag, оставьте это как приложение. Во-вторых, добавьте = * require_self в файл application.scss, это позволит загружать загрузочный файл перед любыми другими добавленными вами css-файлами. - см., если это дает вам ту же ошибку – trh

ответ

0

Так что я установил его, выполнив следующие действия:

  1. Загруженные Node.js и установил его.
  2. обнаружил, что ExecJS runtimes.rb файла игровых здесь: \RUBYINSTALLATIONFOLDER\lib\ruby\gems\2.2.0\gems\execjs-2.6.0\lib\execjs и изменил его в качестве варианта ответа 3 ExecJS::RuntimeError on Windows trying to follow rubytutorial
Смежные вопросы