我有一个 ruby 函数创建一个哈希的实例变量,我无法在 javascript 中访问它的值。
这是我的控制器:
class TransferController < ApplicationController
def index
require 'json'
#@transfers = Transfer.select("transfer_id,section_id,sum(net) as net").group("transfer_id,section_id").having("sum(net) <> ?",0).order("transfer_id ASC")
@transfers = Transfer.select("section_id,section_name,sum(net) as net").group("section_id,section_name").order("section_id ASC")
h = Hash.new()
a = []
@transfers.each do |section|
h["name"] = section.section_name
h["size"] = section.net
a.insert(h)
end
@sectionhash = Hash.new()
@sectionhash["name"] = "stringush"
@sectionhash["children"] = a
end
end
这是我的观点:
<h1><%= @sectionhash["name"] %></h1>
<script src="http://d3js.org/d3.v3.min.js"></script>
<script type="text/javascript">
var x = <%= @sectionhash["name"] %>;
alert(x);
</script>
我得到的结果是,它向我展示了哈希内部的值,但 javascript 什么也不做。我什至尝试在分配 ruby 代码之前发出警报,它起作用了。所以它在嵌入红宝石的路线上失败了。我在这个论坛上看到人们回答说我写的嵌入行是合法的。任何想法为什么这不起作用?