Ruby on rails JavaScript中的Ruby变量引发语法错误

Ruby on rails JavaScript中的Ruby变量引发语法错误,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个Rails控制器动作来初始化这个变量: @print_url = new_batch_batch_content_template_path(@batch, @content_template) 我尝试在ERB模板中访问它,正如“”所说,我可以这样做,因此我尝试: <script type="text/javascript" charset="utf-8"> var url = <%= @print_url %>; </script> 如您所

我有一个Rails控制器动作来初始化这个变量:

@print_url = new_batch_batch_content_template_path(@batch, @content_template)
我尝试在ERB模板中访问它,正如“”所说,我可以这样做,因此我尝试:

<script type="text/javascript" charset="utf-8">
  var url = <%= @print_url  %>;
</script>

如您所见,JavaScript将其解释为正则表达式,因为它不是作为字符串计算的。为什么Ruby不将其作为字符串进行计算?我不明白为什么其他链接中的示例有效,但为什么我的示例无效

您需要在值周围使用引号:

<script type="text/javascript" charset="utf-8">
  var url = '<%= @print_url  %>';
</script>

var url='';

“为什么ruby不将其作为字符串进行计算?”——错误的上下文不是ruby,而是JavaScript。那么我们如何在JS中再次编写文本文本…?@CBroe你是对的,但当时,我希望该值在javascript中呈现之前已经被解析为字符串。ruby是否将其解析为字符串在这里并不重要–javascript是您在这里引入值的上下文,因此,你必须根据上下文的语法规则来处理它。
<script type="text/javascript" charset="utf-8">
  var url = '<%= @print_url  %>';
</script>