我一直在使用普通的 javascript,我只是渲染一条简单的警报消息,但它将 JS 代码渲染为 View 中的平面字符串。这是我的代码
def index
render :js => "alert('Hello Rails');"
end
它呈现相同的字符串“alert('Hello Rails');”对我来说是 View 而不是警报消息。 我使用 Rails 3 并作为 Rails guide代码看起来没问题。
任何答案将不胜感激。谢谢
最佳答案
比较以下两个片段:
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
alert('Hello Rails');
</script>
</body>
</html>
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
alert('Hello Rails');
</body>
</html>
第一个生成警报消息,第二个仅显示字符串。浏览器不会执行 JS 代码,除非它被 <script>
包裹起来。标签。 @Erez 答案中的 jQuery ajax 调用也将响应包装为 <script>
内部。
因此,如果您直接访问操作,请尝试用 <script>
包装它,或者,更好的是,使用 javascript_tag 帮助程序 (http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-i-javascript_tag)
关于javascript - vanilla javascript 渲染平面文本 RAILS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12489940/