0

Ich verwende Rails 4.2.3. Aus meiner Sicht möchte ich Ausgabe einige JS, so habe ich dieseWie verhindere ich aus meiner Sicht, dass Rails meinen Apostrophe entgeht?

<% 
    puts "size: #{@user_my_objects.size}" 
    js_data = [] 
    @user_my_objects.each do |user_my_object| 
    my_object_day_fmted = user_my_object.my_object.day.strftime("%Y/%m/%d") 
    js_data.push("[new Date('#{my_object_day_fmted}')).getTime(), #{user_my_object.time_in_ms}]") 
    end 
%> 
     var data = [<%= js_data.join(",") %>]; 

aber Rails hält meine Apostrophe Umwandlung zu „& # 39;“ Zeichen und seiner Verursachung „Uncaught Syntaxerror: unerwartetes Token &“ JS Fehler bei Die Seite wird gerendert. Hier ist ein Beispiel dafür, wie die Ausgabe sieht

var data = [[new Date(&#39;2011/10/23&#39;)).getTime(), 1286000],[new Date(&#39;2013/08/11&#39;)).getTime(), 2779000],[new Date(&#39;2013/10/26&#39;)).getTime(), 1288000],[new Date(&#39;2014/06/28&#39;)).getTime(), 2915000],[new Date(&#39;2014/09/07&#39;)).getTime(), 6256000],[new Date(&#39;2015/07/25&#39;)).getTime(), 2788000],[new Date(&#39;2015/08/22&#39;)).getTime(), 1488000]]; 

Wie verhindere ich Rails von HTML-Anwendung nur auf Zeichen für diese Seite zu entkommen?

+0

die h-Hilfsmethode ist, was Sie brauchen, denke ich. Ähnlich: http://stackoverflow.com/questions/692921/how-to-html-encode-escape-a-string-is-there-a-built-in – Crayon

+0

Ich habe meine Zeile oben geändert in "var data = [ <% = h js_data.join (",")%>]; " Aber selbst nach einem Serverneustart wird immer noch mit den Escapezeichen dargestellt - "var data = [[new date (' 2011/10/23 ']). getTime(), 1286000], [neues Datum (' 2013/08/11 ')). GetTime(), 2779000], [neues Datum (' 2013/10/26 ')). GetTime(), 1288000], [neues Datum (' 2014/06/28 '))). GetTime (), 2915000], [neues Datum (' 2014/09/07 '))] getTime(), 6256000], [neues Datum (' 2015/07/25 '))]. GetTime(), 2788000], [neues Datum (' 2015/08/22 ')). GetTime(), 1488000]]; " –

Antwort

0

versuchen Sie dieses stattdessen

<%= raw %>