プロジェクトにd3.jsを取り込もうとしていますが、RubyonRailsバックエンドから提供されているJSONオブジェクトにアクセスする方法がわかりません。
これが私のコントローラーコードです:
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
私はコンソールとビューの両方で、情報にアクセスする方法を理解しようとしています。(ちなみに、respond_withブロックを破棄して、レンダリングJSONブロックを保持すると、JSONオブジェクトが実際には応答オブジェクトであることがわかります)。
これが私が(ビューで)試したことです:
<%= javascript_tag do %>
var data = d3.json('<%= @course %>');
console.log(data);
<% end %>
これはオブジェクトを返しますが、オブジェクトは未定義なので、次のように呼び出します。
dataset[0].course.course_name;
次のエラーが発生します。
TypeError: Cannot read property 'course' of undefined
また、コンソールで次のようなものを試しました。
var url = '/courses/1';
var dataset = d3.json(url);
dataset[0].course.course_name;
しかし、同じエラーが発生します。
私はjsに比較的慣れていないので、新人の間違いを犯している可能性がありますが、それが何であれ、私はそれを見ることができません!
助けてくれてありがとう!