2017-07-10 42 views
0

地圖通過ActiveRecord的關係,我有一個edit.html.erb文件,這樣定義一個form_for軌道 - 在JavaScript

<%= form_for @text_message, url: text_message_path(@text_message) do |f| %>

在HTML文件的底部,我的javascript代碼,看起來像這樣:

<% content_for :javascript do %> 

<script type="text/javascript"> 

$(function() { 
    setInitialUserSegments(); 
}); 



function setInitialUserSegments(){ 

<%= @text_message.text_message_segments.map do |segment| %> 

    createUserSegment('<%= segment.segment_type %>', '<%= segment.segment %>') 

    <% end %> 
} 


</script> 

<% end %> 

我需要經過所述@text_message對象的每個text_message_segment並將參數傳遞給該方法createUserSegment;但是,它失敗,並在控制檯下面的錯誤...

edit:619 Uncaught SyntaxError: Unexpected token &

,當我瀏覽到錯誤,就說明這一點:

function setInitialUserSegments(){ 

    createUserSegment('test', 'lol') 

    [&quot;&#39;)\n\n&quot;] 
} 

我怎樣才能辦理的每text_message_segment@text_message在我的JavaScript和調用方法沒有得到一個錯誤?

回答

0
[&quot;&#39;)\n\n&quot;] 

這是由map<%= %>打印結果

解決方案

<% @text_message.text_message_segments.each do |segment| %> 
    createUserSegment('<%= segment.segment_type %>', '<%= segment.segment %>') 
<% end %> 

返回更換

  1. <%= %><% %>
  2. mapeach(不是強制性的,但因爲你不需要你可以使用每個結果)

原因:

  1. <%= %>打印操作結果 和
  2. map給你一個數組
+0

感謝你! – Walker