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('2011/10/23')).getTime(), 1286000],[new Date('2013/08/11')).getTime(), 2779000],[new Date('2013/10/26')).getTime(), 1288000],[new Date('2014/06/28')).getTime(), 2915000],[new Date('2014/09/07')).getTime(), 6256000],[new Date('2015/07/25')).getTime(), 2788000],[new Date('2015/08/22')).getTime(), 1488000]];
Wie verhindere ich Rails von HTML-Anwendung nur auf Zeichen für diese Seite zu entkommen?
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
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]]; " –