Ruby on rails RubyRacer或libv8在rails应用程序中的作用是什么?

Ruby on rails RubyRacer或libv8在rails应用程序中的作用是什么?,ruby-on-rails,therubyracer,libv8,Ruby On Rails,Therubyracer,Libv8,我在做一个项目,经常遇到与therubyracer和libv8的问题,所以我决定删除它们。它似乎是唯一一个使用它们作为依赖项的东西,就是我想删除的更少的rails 我的主要问题是它们是干什么用的,我在普通应用程序中需要它们吗?如果需要,原因是什么?rubyracer提供以下功能: 1. We can write your ruby codes inside js codes. 2. We can invoke the js functions from ruby codes. 3.

我在做一个项目,经常遇到与therubyracer和libv8的问题,所以我决定删除它们。它似乎是唯一一个使用它们作为依赖项的东西,就是我想删除的更少的rails


我的主要问题是它们是干什么用的,我在普通应用程序中需要它们吗?如果需要,原因是什么?

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 gem的几个基本好处。
请阅读完整的详细信息

Rails应用程序可能会使用Javascript运行时来实现以下几点:

1) Rails资产管道需要Javascript运行时来执行Javascript压缩

2) 某些RailsActionView帮助程序如javascript\u include\u标记需要javascript运行时才能执行javascript函数

并不是每个Rails应用程序都使用这些特性,因此Rubyracer gem最初会在您的Gemfile中注释掉;此外,请注意,您也可以使用NodeJS作为Javascript运行时

有关详细信息,请参阅:


它们通常用于默认情况下未安装JavaScript运行时的平台上的资产管道。因此,如果您不在目标系统上编译资产,或者系统的路径中有JavaScript运行时,则不需要这些资源。因此,未连接到internet的CentOS服务器将有或不会有这些资源?如果服务器已经安装了JavaScript运行时,如node.js,则不需要。我不知道centos是否附带JavaScript运行时,如果您不是在te box上编译资产,也不需要它。Less.rb依赖于commonjs,它似乎只使用therubyracer或therubyrhino。有关更多信息,请查看此处的答案。第1项,这与js.erb文件有什么关系吗?当您点击rails控制器(通过ajax)并希望与app/views/action_name.js.erb文件中的代码进行一些交互时。此文件将保存您的js代码+嵌入式ruby代码。:)请检查:在提供的链接中,只需搜索app/views/products/_save.js.erb:这将消除您的疑问:)听起来很糟糕,我们为什么要调用ruby代码表单js,或者反之亦然?哎呀!!我收回我的话。。。我必须在Java内部运行JS(将模板系统移植到Java,)…如果我需要Sinatra/Rails端口,就必须尝试rubyracer。。。。。。可惜没有像Nashorn for Java那样的纯ruby替代品。