简体   繁体   中英

Convert Array of Objects to Javascript Rails

I'm trying to convert an array of Builds called @builds to a javascript array, doing it this way:

<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>

But builds.length no matter what, builds.length will return 1, even though roughly 50 builds are stored in @builds. Here is the schema for the Build model if that might help:

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

Thanks in advance!

Say

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

@builds.to_json will evaluate to "[1,2,3,4,5]" and thus your JS will end up looking like this:

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

An array of an array whose length is 1.

If you are sending JSON strings to the view you should be using JSON.parse() instead.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM