Я следовал руководству по реакторным рельсам (его можно найти здесь: https://www.pluralsight.com/guides/building-a-crud-interface-with-react-and-ruby-on-rails). Я использовал тот же код, что и руководство, чтобы понять суть реакции. В середине урока, когда я запускал проект, я бы получить синтаксическую ошибку на
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
это строка 8 внутри моего файла application.html.erb. Сначала я проигнорировал его, но после того, как я закончил, у меня возникла та же ошибка, поэтому я скопировал код учебника из репозитория github, предоставленного в конце руководства, но я до сих пор та же проблема.
Вот еще несколько деталей:
Rails называет эту ошибку как Execjs :: RuntimeError и сообщает, что
"SyntaxError: unknown: Unexpected token"
сообщение в целом выглядит так:
ExecJS::ProgramError in Site#index
Showing /Volumes/DataDrive/item_cart/app/views/layouts/application.html.erb where line #8 raised:
SyntaxError: unknown: Unexpected token (27:2)
Extracted source (around line #8):
-------------------------------------------------------------------------
6 <%= csp_meta_tag %>
7 <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
8 <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
-------------------------------------------------------------------------
вот как выглядит мой контроллер сайта:
class SiteController < ApplicationController
def index
end
end
my application.hrml.erb выглядит так:
<!DOCTYPE html>
<title>ItemCart</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
<%= yield %>
</body>
</html>
Я провел небольшой поиск по проблеме, и оказалось, что эта ошибка произошла по двум причинам (или предполагается, что это так)
1: что-то запуталось в конвейере активов
линия.
1a) комментарий terickson001 к этому сообщению Rails - Связывание таблицы стилей и JavaScript в макете приводит к синтаксической ошибке - «Отсутствует ///»
1b) JavaScript не может быть запущен с ruby
Вот мой список драгоценных камней:
gem 'rails', '~> 5.2.3'
gem 'responders'
gem 'react-rails'
gem 'sqlite3'
gem 'puma', '~> 3.11'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'mini_racer', platforms: :ruby
gem 'coffee-rails', '~> 4.2'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'bootsnap', '>= 1.1.0', require: false
Я попытался установить гем 'coffee-script-source' & 'therubyracer' (с опцией ruby), установил узел и проверил его на терминале. Постройте и запустите новый терминал.
я не смог найти файл runtimes.rb в моем проекте rails, как упомянул Кевин П (четвертый вариант исправления) здесь ExecJS :: RuntimeError в Windows, пытающийся следовать rubytutorial
Мне действительно нужна помощь с этим. ОС моей системы - MAC. редактор возвышенный. браузер chrome. ruby 2.4.1 и рельсы 5.
пожалуйста, помогите мне с этим