ハッシュのインスタンス変数を作成する 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コードの割り当ての前にアラートを入れてみましたが、うまくいきました。そのため、ルビが埋め込まれた行で失敗しています。このフォーラムで、私が書いた埋め込み行は合法であると答える人を見てきました。これが機能しない理由はありますか?