Для чего нужен therubyracer или libv8 в приложении rails?

Я работал над проектом, и у меня часто возникали проблемы с therubyracer и libv8, поэтому я решил их устранить. Казалось, единственной вещью, которая использовала их как зависимость, были менее рельсы, которые я хотел удалить в любом случае.

Мой главный вопрос: для чего они нужны и нужны ли они в обычном приложении, и если да, то почему?

2 ответа

Решение

Есть несколько вещей, для которых приложение Rails может использовать Javascript Runtime:

1) Rails Asset Pipeline требует Javascript Runtime для выполнения сжатия Javascript.

2) Некоторым помощникам Rails ActionView, таким как javascript_include_tag, требуется Javascript Runtime для выполнения функций Javascript.

Не каждое приложение Rails использует эти возможности, поэтому причина, по которой гем therubyracer изначально закомментирован в вашем Gemfile; Кроме того, обратите внимание, что вы можете альтернативно использовать NodeJS в качестве среды выполнения Javascript.

Для подробностей смотрите:

http://guides.rubyonrails.org/asset_pipeline.html

http://www.rubydoc.info/docs/rails/ActionView/Helpers/JavaScriptHelper

http://www.rubydoc.info/docs/rails/ActionView%2FHelpers%2FAssetTagHelper%3Ajavascript_include_tag

Правильный "Rails" способ выполнения JavaScript на определенных страницах

rubyracer предоставляет следующие возможности:

 1. We can write your ruby codes inside js codes. 
 2. We can invoke the js functions from ruby codes.  
 3. Manipulation of javscript objects & the passing them to javascript functions.

Это несколько основных преимуществ использования драгоценного камня rubyracer. Пожалуйста, прочитайте полную информацию здесь

Другие вопросы по тегам