2016-08-04 77 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 %>");