Javascript xyz.js.erb如何在Rails中工作?

Javascript xyz.js.erb如何在Rails中工作?,javascript,ruby-on-rails,Javascript,Ruby On Rails,我知道对于控制器中的操作,我们可以有这样的代码 def xyz @user=User.find params[:id] respond_to do |format| format.html format.xml { ... } format.json { ... } format.js {...} end end 因此,他们将使用xyz.html.erb、xyz.xml.erb、xyz.json.erb和

我知道对于控制器中的操作,我们可以有这样的代码

def xyz
    @user=User.find params[:id]
    respond_to do |format|
        format.html 
        format.xml { ... }
        format.json { ... }
        format.js {...}
    end
end
因此,他们将使用xyz.html.erb、xyz.xml.erb、xyz.json.erb和xyz.js.erb进行响应。对于前三种格式,我认为它们将使用html、xml和json格式的数据进行响应。我不明白的是javascript类型的数据将如何传递到浏览器。我之所以关心这一点,是因为我可能想编写一些逻辑操作,这些操作不希望浏览器或读者知道,但普通javascript会向浏览器显示每个细节,以便浏览器知道如何处理页面中的项目

给定xyz.js.erb有以下代码

$("#the_box").append("<%= @user.age*1.5 %>");

浏览器将得到什么样的响应?我不想让浏览器知道逻辑部分@user.age*1.5。

就像使用html.erb文件一样,erb标记的内容是在服务器端计算的,浏览器只看到结果,例如

$("#the_box").append("42");

接下来会发生什么取决于请求此文件的方式。例如,如果使用数据类型设置为script的jquery,或者如果没有设置它,但jquery推断出它,那么jquery将为您计算该javascript。如果您通过插入脚本标记发出请求,那么浏览器将直接执行该请求

我认为有更好的读者能够提供更具体的答案,但你可能希望看看。除了JS文件将运行之外,我知道的不多,它允许您更改DOM作为结果。您为什么不测试它呢?只需启动服务器,发送请求并查看文件。我对其进行了测试,在浏览器端没有找到带有ChromeWebdev工具的javascript文件。在服务器端,它只是显示xyz.js.erb,但没有指定如何向浏览器显示。