Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通过Rails和AngularJS中的AJAX调用打印JSON数据_Ruby On Rails_Ruby_Angularjs_Json - Fatal编程技术网

Ruby on rails 通过Rails和AngularJS中的AJAX调用打印JSON数据

Ruby on rails 通过Rails和AngularJS中的AJAX调用打印JSON数据,ruby-on-rails,ruby,angularjs,json,Ruby On Rails,Ruby,Angularjs,Json,Rails的新成员, 我的home_controller.erb中有一个Ruby应用程序,它从MongoDB返回一个JSON值,并存储在@tuple变量中 如何在前端打印JSON响应。任何帮助都会很好 元组={“_id”:{“$oid”:“565A8BF88AB8DC1C600006”},zip:“85009”} 这是我的控制器代码: class HomeController < ApplicationController def index uri='mongodb

Rails的新成员, 我的home_controller.erb中有一个Ruby应用程序,它从MongoDB返回一个JSON值,并存储在@tuple变量中

如何在前端打印JSON响应。任何帮助都会很好

元组={“_id”:{“$oid”:“565A8BF88AB8DC1C600006”},zip:“85009”}

这是我的控制器代码:

  class HomeController < ApplicationController

  def index



   uri='mongodb://heroku_bv2wfp7x:bt1uo8ddu73rs5p6b9nvk5tp4u@ds051534.mongolab.com:51534/heroku_bv2wfp7x'

   connection_variable=Mongo::Client.new(uri)


connection_variable[:mongoearthquakes].drop
puts "Connected to Mongo DataBase, Inserting data . . . . . "

$j=0

while $j < 9 do
// inserting data into MongoDB
    $j+=1
end



result=connection_variable[:mongoearthquakes].find()

result.each do |tuple|
    tuple=tuple.to_json

    puts tuple

    @data_to_be_printed=tuple
end


end
class HomeController
My index.html.erb文件:

 <!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<p>Hello world: </p>
</div>  

<script>

      angular.module('myApp', []).controller('myCtrl', ['$scope', '$http', function($scope, $http) {

    $.ajax({
        type: "GET",
        url: "@data_to_be_printed",
        dataType: "json",
        success: function(data){
        console.log(@data_to_be_printed) 
    }        
});

}]);
</script>
</body>
</html>

你好,世界:

角度.module('myApp',[]).controller('myCtrl',['$scope','$http',函数($scope,$http){ $.ajax({ 键入:“获取”, url:“@要打印的数据”, 数据类型:“json”, 成功:功能(数据){ console.log(@data\u to\u被打印) } }); }]);
通常添加

render json: @data_to_be_printed

由于
索引
操作的最后一行将返回预期的JSON结构。

通常,ajax中的路径应该是route.rb中的路径,请先检查路由

在index.html.erb中

$.ajax({
    type: "GET",
    url: <%= home_index_path %>+".json",  
    dataType: "json",
    success: function(data){
    }
}  

在这个主控制器的索引操作--home_controller.rb

中,我实际上在URL处得到了一个错误。404未找到错误。我是否以正确的方式从控制器访问JSON数据?我认为这不正确。如果您在本地环境中运行,并且您的根路由在
HomeController
中设置为
index
,那么url应该类似于“”,您的ajax url需要类似于
localhost:8000
并且所有逻辑都需要在model中。您可以使用
MongoId
作为mongodb模型的链接,我的URL应该指向返回的JSON值?我想这就是你的目的。您应该能够通过命令
rake routes
respond_to do |format|
  format.json  { render json: @data_to_be_printed }
end