首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Rails 4中的javascript中包含ruby变量?

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

Stack Overflow用户
提问于 2014-03-05 07:21:06
回答 1查看 156关注 0票数 4

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

我所探讨的备选方案如下:

  1. 使用ajax调用将数据从服务器上取出。我不喜欢这个,因为用户没有改变任何数据,当我呈现页面时,我可以访问所有的数据,应该有更好的方法。
  2. 在视图中使用<script>标记,只需让ERB对变量进行内插。这看起来有点烦人,绝对没有利用我所有美丽的大腿。但是这很容易,并且允许我将javascript变量放在页面上,然后可以在document.onload之后提取这些变量。
  3. 冈。很棒的宝石而且很简单。但这真的需要一块宝石吗?

我觉得解决方案应该包括资产管道和某种rails内插,但我似乎不能让它非常清晰地工作。解决这一问题的优雅的rails 4方法是什么?

谢谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-24 13:40:31

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

  1. 使用您所描述的第二个方法,并在javsacript中插入ERB标记。这是丑陋的,无趣的,甚至不接近最佳实践。
  2. 使用数据属性。您可以修改HAML以包含其他属性,如“数据-我-变量”,并通过javascript (例如使用jQuery:$(element).data("my-variable"))访问它。

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

现在,我不知道HAML,我以前只使用过ERB,但是我找到了this answer by Mandeep,它解释了如何向HAML添加数据属性:

代码语言:javascript
运行
AI代码解释
复制
%a{"data-my-variable" => "my data", href: "#"}

代码语言:javascript
运行
AI代码解释
复制
%a{href: "#", :data => {:my_variable => "my data"}}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22201837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档