如何防止 Rails 在我看来转义我的撇号?
Posted
技术标签:
【中文标题】如何防止 Rails 在我看来转义我的撇号?【英文标题】:How do I prevent Rails form escaping my apostraphes in my view? 【发布时间】: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 辅助方法。类似:***.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]];" 【参考方案1】:试试这个
<%= raw %>
【讨论】:
以上是关于如何防止 Rails 在我看来转义我的撇号?的主要内容,如果未能解决你的问题,请参考以下文章