在我正在执行的控制器操作中:
@user = user.to_json
然后在我看来我正在做:
<script type="text/javascript">
<%= @user %>
</script>
结果html就像:
[{"user":{"age":8,....
为什么它包含“无处不在?”
在irb中输出就好了:
[{\"user\":{\"age\":8,...
答案 0 :(得分:2)
在Rails 3中,默认情况下会对视图中的所有输出进行转义。你曾经不得不打电话给h(..)
逃避。
你可以通过调用html_safe
告诉Rails你输出的确实是安全的并且rails不需要担心它:
<script type="text/javascript">
<%= @user.html_safe %>
</script>
原因是这些数据通常来自您的用户(例如人们发布表单),并且它们可能包含您随后输出的恶意内容,从而导致XSS攻击等。 Rails 3采取了一种(有点争议)的方法,在这里格外谨慎。
以下是耶胡达关于html_safe
的好blog post以及实际发生的事情
答案 1 :(得分:2)
尝试使用原始方法?
<%= raw @user %>