Javascript 从控制器Rails 4向JS传递变量

Javascript 从控制器Rails 4向JS传递变量,javascript,ruby-on-rails,Javascript,Ruby On Rails,我想将变量从控制器传递到js文件。以下是我的工作: index.html.erb @坐标在mapsindex中定义 @coords=Map.all如果您的js文件位于如下位置: app/assets/javascripts/your-js.js.erb 然后您可以像这样使用变量: 编辑: 我之前的回答是错误的,因为js是预编译的。 因此,我的新答案是: 创建一个html app/views/layouts/_page_scope.html.erb 然后您可以从js访问该变量: globalPa

我想将变量从控制器传递到js文件。以下是我的工作:

index.html.erb @坐标在mapsindex中定义
@coords=Map.all如果您的js文件位于如下位置: app/assets/javascripts/your-js.js.erb

然后您可以像这样使用变量:

编辑:

我之前的回答是错误的,因为js是预编译的。 因此,我的新答案是: 创建一个html app/views/layouts/_page_scope.html.erb

然后您可以从js访问该变量:


globalPageScope.coords

这个答案是如此错误,如果可以的话,我会投三次反对票。@MichalSzyndel怎么会这样?你能推荐一个更好的吗?资产是使用rake任务预编译的,所以我不知道你希望控制器如何根据请求在那里传递值。编辑了我的答案。请在以后的案例中使用更合适的语言。这里没有人需要伤害。答案仍然是错误的,但如果她/他不回复评论,很难帮助OP…你能更新问题视图代码的输出吗?
 <%
    globalPageScope = {}
    globalPageScope['coords'] = @coords if @coords
%>

<script type="text/javascript">
    document.globalPageScope = <%= raw globalPageScope.to_json %>;
</script>