将Ruby JSON变量传递给javascript变量

时间:2016-08-02 12:18:40

标签: javascript ruby-on-rails ruby json

我创建了index.html.erb文件,其中包含ruby / html代码,文件在wehost服务器上运行,位于localhost ,不使用rails

我的Ruby代码中有一个Global JSON变量。它看起来像这样:

@ruby_side_json = [{ :name => 'Will', :age => 23 },{ :name => 'John', :age => 30 }].to_json

我希望将其分配给驻留在脚本

中的javascript变量

写不成功:var javascript_side_json = <%= @ruby_side_json %>

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

如果您在脚本标记内使用rails标记,则应使用单引号或双引号引用它。

更改您的代码,如下所示:

var javascript_side_json =&#39;&lt;%= @rails_side_json%&gt;&#39;;

答案 1 :(得分:0)

在您描述的环境中,我能看到其工作的唯一方法是直接在html中创建<script>标记并在任何javascript需要标记之前将其呈现在顶部。

像这样:

<head>
  <script>
    var javascript_side_json = <%= @rails_side_json %>
  </script>
</head>

那就是说,它有点丑,但应该有效;如果你没有把它放在JS require标签之前,那么当你试图执行一些需要它的JS时,数据就不会存在。

答案 2 :(得分:0)

假设您没有使用Rails,并且正在使用to_json实现正确生成JSON。然后尝试这样做:

<script>    
  var javascript_side_json = <%= @rails_side_json %>;
</script>