Javascript 从d3.js中的Rails访问JSON信息

Javascript 从d3.js中的Rails访问JSON信息,javascript,ruby-on-rails,json,d3.js,Javascript,Ruby On Rails,Json,D3.js,我正试图将d3.js合并到我的项目中,但我在弄清楚如何访问JSON对象时遇到了困难,JSON对象是从我的RubyonRails后端提供的 这是我的控制器代码: class CoursesController < ApplicationController respond_to :html, :json def course @course = Course.find(params[:id]) respond_with @course do |format| format.

我正试图将d3.js合并到我的项目中,但我在弄清楚如何访问JSON对象时遇到了困难,JSON对象是从我的RubyonRails后端提供的

这是我的控制器代码:

class CoursesController < ApplicationController
respond_to :html, :json

def course
  @course = Course.find(params[:id])
  respond_with @course do |format|
    format.html
    format.json {render json: @course}
  end
end
我得到以下错误:

TypeError: Cannot read property 'course' of undefined
在控制台中,我还尝试了类似以下内容:

var url = '/courses/1';
var dataset = d3.json(url);
dataset[0].course.course_name; 
但是得到同样的错误

我对js比较陌生,所以我可能犯了一个新手错误,但是,不管是什么,我看不出来


提前感谢您的帮助

问题是带有一个参数的d3.json函数()返回请求。然后,您必须发出该请求

“典型”用法是使用第二个参数和回调函数。这是一个异步回调,因此不能将返回值分配给var

以下是我的建议:

var url = '/courses/1';
d3.json( url, function( error, data ) {
    console.log( data );
    // do all actions required now that the data is retrieved
} );

非常感谢-这让我快发疯了!
var url = '/courses/1';
var dataset = d3.json(url);
dataset[0].course.course_name; 
var url = '/courses/1';
d3.json( url, function( error, data ) {
    console.log( data );
    // do all actions required now that the data is retrieved
} );