Нужно ли Rails грабить db: migrate для выполнения javascript? - PullRequest
4 голосов
/ 01 декабря 2011

В моем первом проекте rails (с использованием mysql) я пытался выполнить команду rake db:create, но она выдавала следующую ошибку:

Не удалось найти среду выполнения JavaScript.См. https://github.com/sstephenson/execjs для списка доступных сред выполнения.

Поэтому я включил gem 'therubyracer', require: "v8" в свой Gemfile и выполнил bundle install.Проблема решена, но она оставила некоторые сомнения.

Может ли кто-нибудь дать мне объяснение, почему для выполнения задач такого типа требуется среда выполнения javascript?Я новичок в Ruby и RoR, так что мне это кажется довольно странным, почему RoR использует javascript для создания базы данных?

Ответы [ 2 ]

8 голосов
/ 01 декабря 2011

Вам нужна среда исполнения javascript, потому что теперь Rails использует конвейер ресурсов .Rails не нуждается в этом для запуска ваших миграций, но когда вы запускаете rake db:migrate, задача rake загружает ваше приложение rails, для запуска которого требуется среда выполнения javascript.Практически нет никакой связи между миграциями и временем выполнения javascript, но ваше приложение не загрузится без него.

2 голосов
/ 01 декабря 2011

Это для исполняемого на сервере javascript.Он используется NodeJS, Coffeescript и еще несколькими javascript гемами.Если вы не используете ни одного из них, вы можете просто удалить их из своего гемфайла, и время выполнения не потребуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...