我正在尝试将名为@build的Builds数组转换为javascript数组,这样做:
<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无论如何,builds.length将返回1,即使大约50个构建存储在@build中。以下是Build模型的架构,如果这可能会有所帮助:
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 :(得分: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 %>");