[英]load JSON from rails controller to d3 .defer() function within javascript file
我有一个使用D3制作带有城市的地球仪的Rails应用程序。 当前,城市的数据位于一个名为places.json的静态json文件中。 然后,通过此代码段将places.json文件呈现到资产/ javascript中的其余d3代码
queue()
.defer(d3.json, "/assets/world-110m.json")
.defer(d3.json, "/assets/places.json")
.await(ready);
我想将控制器替换为“ /assets/places.json”文件,该控制器会重载动态json。 我目前正在使用控制器,并且有一个发布请求,可以将json获取到下面的javascripts文件中。
$.post( "/teams/to_geo_json", function( data ) {
alert( JSON.stringify(data) );
});
/teams/to_geo_json
是控制器的路径。 但是,当我将控制器路径放入.defer(d3.json, "/assets/places.json")
它不起作用,我也不知道如何获取$.post("/teams/to_geo_json")...
调用以使用d3.js其余代码。
事实证明,我在延期中遇到404错误。 在我的路线上,我有一个
post "/teams/to_geo_json" => "teams#to_geo_json"
在控制台中,它要求从defer()获取get方法。 我将上面的路线更改为:get“ / teams / to_geo_json” =>“ teams#to_geo_json”
更改之后,我仍然遇到问题localhost:3000/teams/to_geo_json
转到localhost:3000/teams/show/id
,它认为to_geo_json
是它当然找不到的id。 所以它出错了。 为了解决这个问题,我把
get "/teams/to_geo_json" => "teams#to_geo_json"
以上
resources :teams, :only => [:index, :show] do
resources :users, :path => :teammates, :as => :teammates, :controller => "teammates"
end
在我的routes.rb文件夹中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.