如何将Rails变量导入JavaScript文件(D3)

时间:2018-08-01 19:10:43

标签: javascript html ruby-on-rails d3.js

我需要从数据库中获取数据并将其传递到我的Rails 5应用程序中的JavaScript文件中。

在我的控制器中,我创建了一个变量,如下所示:

@this_anomaly = Anomaly.find_by_id(2)

我显然可以通过以下方式访问它以及在我看来:

<%= @this_anomaly.started_at %>

但是我需要将相同的数据放入我的javascript文件中,该文件用于在D3中绘制图形以注入到视图中。如何通过?

不确定从哪里开始,谢谢!

3 个答案:

答案 0 :(得分:0)

您可以像这样在html.erb中声明您的javascript变量

var started_at = <%= @this_anomaly.started_at %>

答案 1 :(得分:0)

一种选择是将数据放入HTML的He属性中

data

然后在您的js文件中

<div data-started-at=<%= @this_anomaly.started_at %> data-for-d3-graphics></div>

我不确定这是否是let value = $('div[data-for-d3-graphics]').data('started-at'); 文件的确切语法,但是您知道了

答案 2 :(得分:0)

所以我尝试过的一种有效方法(因为我使用的是d3)是使用以下命令在html.erb中请求数据:

<div id="anomaly_data">
    <%= @this_anomaly.started_at %>
</div>

然后在我的js文件中,使用d3.select将其存储在变量中:

var anomaly = d3.select("#anomaly_data").text();

哪个工作并且可以不经过任何处理就获得日期/时间/等给我!但是,必须有更好的方法吗?