将对象数组转换为Javascript Rails

时间:2016-08-04 23:55:24

标签: javascript html ruby-on-rails ruby json

我正在尝试将名为@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

提前致谢!

1 个答案:

答案 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 %>");