gpt4 book ai didi

javascript - Rails,将 Ruby 变量放入 Google 日历的 Javascript 中

转载 作者:行者123 更新时间:2023-12-02 19:50:17 25 4
gpt4 key购买 nike

嗨,我想知道是否有人玩过谷歌图表,因为对于懒惰的程序员来说,在任何网站上进行分析都很棒。我对 javascript 很陌生,事实上今天是我第一天使用它。所以我有一些来自谷歌的JavaScript,可以生成这些图表来插入它为您提供的基本数据,在JavaScript中如下所示:

// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('number', 'Velocity');
data.addRows([
['Gary', 9],
['Hannes', 11],
['Sandra', 5],
['Rob', 3],

这一切都在 <script> 标签之间。现在我只是在玩它。但这里有静态数据就像船上的一个洞一样有用。我怎样才能用我制作的这个 haml 表附加数字:

%table.gap
- test = sprint.work_by_developer
%tr
- test.each do |data|
%td.column.developer_name
= data.name
\:
%td.type_of_work
Features:
%span.indicator_color
#{data.features} points
%br/
Chores:
%span.indicator_color
= data.chores
%br/
bugs:
%span.indicator_color
= data.bugs

是否可以循环执行 JavaScript 操作:

......
[data.name, data.features],
])

这样,如果有新人加入团队或功能数量发生变化,图表就会实时调整?

酷,提前致谢。这将是一个非常酷的功能。

最佳答案

您基本上需要做的是进行字符串操作(通常是模板化),以使 ruby​​ 输出成为有效的 JavaScript 源文件,发送到客户端并使用 Google Charts 进行呈现。

您发出的 Javascript 必须经过 Ruby 处理才能工作。

如果您使用 Ruby on Rails,有一个很好的方法可以通过 respond_to 来实现这一点。关键字,您可以在其中为不同格式(json/xml/html/js)指定不同的输出。

如果您使用 Rails,您可以简单地定义如下操作方法:

class HomeController < ApplicationController
def Show
@data = [["harry", 10], ["sue", 19]]

respond_to do |format|
format.js
end
end
end

然后您必须有一个名为 show.js.erb 的文件在 app/views/home 中,如下所示:

 var data = new google.visualization.DataTable();
data.addColumn('string', 'Name');
data.addColumn('number', 'Velocity');
<% @data.each do |d| %>
data.addRow(['<%= @d[0] %>', <%= @d[1] %>]);
<% end %>

然后,您可以在需要此数据的位置继续操作,只需插入 <script>标签指向该 home/show.js 操作:

<script type="text/javascript" src="/home/show.js" />

然后,这将执行 home#show 操作(在新请求中,请注意)并将数据带回您的页面。

:

您可以简单地在 View 中输出一个标签,其中包含当前请求填充的数据,就像处理任何其他 View 内容一样(我只是无法告诉您如何在 HAML 中做到这一点)

关于javascript - Rails,将 Ruby 变量放入 Google 日历的 Javascript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9396905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com