【发布时间】:2016-07-07 14:59:43
【问题描述】:
我使用的是 Rails 4.2.3。在我看来,我想输出一些JS,所以我有这个
<%
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(",") %>];
但 Rails 不断将我的撇号转换为“'”字符及其在页面呈现时导致“Uncaught SyntaxError: Unexpected token &” JS 错误。以下是输出外观的示例
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]];
如何防止 Rails 仅将 HTML 转义应用于该页面的字符?
【问题讨论】:
-
我认为你需要的 h 辅助方法。类似:stackoverflow.com/questions/692921/…
-
我将上面的行更改为“ var data = [];"但即使在服务器重新启动后,它仍然会使用转义字符呈现——“var data = [[new Date('2011/10/23')).getTime(), 1286000],[new Date ('2013/08/11')).getTime(), 2779000],[新日期('2013/10/26')).getTime(), 1288000],[新日期('2014/06/28')).getTime(), 2915000],[新日期('2014/09/07')).getTime(), 6256000] ,[新日期('2015/07/25')).getTime(), 2788000],[新日期('2015/08/22')).getTime(), 1488000]];"
标签: javascript ruby-on-rails-4 view escaping special-characters