繁体   English   中英

如何在Rails 4中的javascript中包含ruby变量?

[英]How do I include ruby variables in javascript in Rails 4?

我有一个rails应用程序,它提供了许多视图,其中包括来自数据库的特定数据,这些数据将由一些javascript操作,特别是用于Chartjs。

我探讨的选项是:

  1. 使用ajax调用从服务器中提取数据。 我不喜欢这个,因为用户没有更改任何数据,我在呈现页面时可以访问所有数据,应该有更好的方法。
  2. 在视图ERB中使用<script>标记,只需让ERB插入变量即可。 这似乎有点hacky,绝对没有利用我所有美丽的haml。 但它很容易,并允许我在页面上放置javascript变量,然后可以在document.onload之后获取。
  3. 刚。 伟大的宝石,非常容易。 但这真的需要宝石吗?

我觉得解决方案应该涉及资产管道和某种轨道插值,但我似乎无法使这项工作非常干净。 什么是优雅的轨道4解决这个问题?

感谢大家!

有很多方法可以将数据从服务器端传递到javascript,我将在下面列出两种最常见的(不使用gem或其他外部工具):

  1. 使用您描述的第二种方法,并在javsacript中插入ERB标记。 这是丑陋的,hacky,甚至没有接近最佳实践。

  2. 使用数据属性。 您可以修改HAML以包含其他属性,例如“data-my-variable”,并通过javascript访问它(例如使用jQuery: $(element).data("my-variable") )。

在我看来,数据属性方法是最干净的方法,它正是数据属性的目的。

现在,我不知道HAML,我之前只和ERB合作,但是我发现了Mandeep的这个答案 ,它解释了如何向HAML添加数据属性:

%a{"data-my-variable" => "my data", href: "#"}

要么

%a{href: "#", :data => {:my_variable => "my data"}}

编辑 :对不起,我发现你的问题以及其他更新的问题,我只是假设它是最近的,而不是一年多以前:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM