2016-08-04 40 views
0

我想转换的构建称为@builds到JavaScript数组,做这样一个数组:转换阵列为Javascript Rails的

<script type="text/javascript"> 
    $(function() { 
     var fail_builds = []; 
     var builds = [<%= raw @builds.to_json %>]; 
     fail_builds.push([6,7],[5,builds.length],[1,2]); 
     $.plot("#flot-placeholder", [ fail_builds ]); 
    }); 
</script> 

但builds.length无论怎样,构建。长度将返回1,即使大约50个构建存储在@builds中。如果可能有帮助,以下是构建模型的模式:

t.string "build_name" 
t.string "status" 
t.string "test_type" 
t.string "target_branch" 
t.datetime "time_started" 
t.datetime "time_finished" 
t.datetime "time_queued" 
t.datetime "created_at", null: false 
t.datetime "updated_at", null: false 

在此先感谢!

+0

试试这个:'VAR建立= [<%=原@ builds.to_json.html_safe%>]' – mrvncaragay

+0

没有工作,一样 – railsgod

+0

之前,您能不能告诉生成的JavaScript?您可能需要从代码中删除方括号,因为它们位于JSON输出中。 – Owen

回答

0

@builds = [1, 2, 3, 4, 5] 

@builds.to_json将评估为"[1,2,3,4,5]",因此您的JS最终会看起来像这样:

var builds = [[1,2,3,4,5]]; 

一个数组的数组的长度为1

如果您将发送JSON字符串到您应该使用JSON.parse()的视图。

var builds = JSON.parse("<%= @builds.to_json %>");