Javascript 如何将实例html_安全字符串变量传递给js.erb

Javascript 如何将实例html_安全字符串变量传递给js.erb,javascript,ruby-on-rails-4,html-safe,Javascript,Ruby On Rails 4,Html Safe,这似乎是一个愚蠢的问题,但没有办法做到这一点 使用Rails 4.2.5 在对控制器的远程调用中 def update # ... save ... @notice="S'han trovat errors" # automatically renders update.js.erb end 在update.js.erb中 alert('<%=(@notice)%>'); 2) 另一个证明,在js.erb中: alert('<%=raw(@notice)%&

这似乎是一个愚蠢的问题,但没有办法做到这一点

使用Rails 4.2.5

在对控制器的远程调用中

def update
  # ... save ...
  @notice="S'han trovat errors"
  # automatically renders update.js.erb
end
在update.js.erb中

alert('<%=(@notice)%>');
2) 另一个证明,在js.erb中:

  alert('<%=raw(@notice)%>');
但不起作用,显示“S'han trobat…”

当然,如果我在
index.html.erb
@notice中显示,结果是正确的(S'han trobat..)

我不知道如何从controller向js.erb传递要显示的字符串实例变量中的“'”字符


谢谢

只需删除原始文件或尝试在js文件中添加.html\u safe,而不在控制器中

另一个解决方案是使用\'来转义单引号,如


@注意=“S”han trovat errors“

问题在于javascript接收到:

alert('S'han trobat errors');
共有3个'

因此,解决方案放在控制器中:

@notice="S'han trobat errors".html_safe
在js.erb中:

 alert("<%=(@notice)%>");
警报(“”);
当然,我犯了引号错误


但我仍然有一个问题:为什么在html.erb文件中字符串是自动转义的,而在js.erb文件中却没有?那么,如果我想在
js.erb

中显示它,为什么需要将
.html\u safe
放在字符串中呢?我已经做过了,这是我的证明之一,我也尝试过
警报(“”)
没有成功,你有没有看过生成的代码?在每种情况下,它都有什么问题?我已经删除了原始数据,但它不起作用,这是我的证明之一,您是否尝试在scape单引号中添加\?如果我输入@notice“s\\'han trobat”,结果是“s';han trobat”;如果我输入@notice“s”han trobat,结果是“s'”;han trobat“尝试使用#{}代替,也许它会起作用,因为您在.erb文件中。只是可能。
@notice="S'han trobat errors".html_safe
 alert("<%=(@notice)%>");