これは単純なはずですが、私は文字通り何時間も費やして成功しませんでした。
http://bl.ocks.org/mbostock/950642にあるD3グラフの例を見てください。この例では、graph.jsonというローカルファイルを使用しています。同様のグラフを提供するようにRailsアプリを設定しましたが、JSONのファイルを作成したくありません。むしろ、ノードとリンクを次のようなオブジェクトに生成します。
{"nodes":[{"node_type":"Person","name":"Damien","id":"damien_person"}, {"node_type":"Person","name":"Grant","id":"grant_person"}}],
"links":[{"source":"damien_person","target":"grant_person","label":"Friends"}}
d3.json("graph.json", function(json) {...});
ここで、D3をレンダリングするときに、ローカルファイル(またはURL)ではなくメモリ内オブジェクトを参照するように呼び出しを更新する必要があります。しかし、私が試したすべてが私のhtml/javascriptを壊します。たとえば、を設定しようとしましたvar dataset = <%= raw(@myInMemoryObject) %>;
が、これは割り当てには機能します(データセットに対してアラートを実行しました)が、それを使用するためのD3コードを取得できません。
インメモリオブジェクトを使用するためにd3.json呼び出しを置き換えるにはどうすればよいですか?
ありがとうございました、
ダミアン