Печать данных JSON через вызов AJAX в Rails и AngularJS

0

Новое для Rails, у меня есть приложение Ruby в моем home_controller.erb, которое возвращает значение JSON из MongoDB, и я сохранил его в переменной @tuple Variable.

Как распечатать ответ JSON на лицевой стороне. Любая помощь будет большой.

Кортеж = { "_ идентификатор": { "$ подъязычная": "565a8bf88ab8dc1cc6000006"}, "молния": "85009"}

Это мой код контроллера:

  class HomeController < ApplicationController

  def index



   uri='mongodb://heroku_bv2wfp7x:[email protected]: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

Мой файл 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>
  • 0
    Ваш ajax url должен быть чем-то вроде localhost:8000
  • 0
    также вся логика должна быть в модели
Показать ещё 2 комментария

2 ответа

0

Обычно добавляйте

render json: @data_to_be_printed

поскольку последняя строка вашего действия index вернет структуру JSON, как вы ожидали.

  • 0
    Я действительно получаю сообщение об ошибке по URL. 404 Not Found error.
  • 0
    Правильно ли я получаю доступ к данным JSON из контроллера?
Показать ещё 1 комментарий
0

Обычно путь в ajax должен быть маршрутом в route.rb, пожалуйста, сначала проверьте маршрут

В вашем index.html.erb

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

и добавить

respond_to do |format|
  format.json  { render json: @data_to_be_printed }
end

в действии индекса этого домашнего контроллера - home_controller.rb

  • 0
    Итак, мой URL должен указывать на возвращаемое значение JSON?
  • 0
    Я предполагаю, что это твоя цель. вы должны быть в состоянии увидеть ваш путь к # home по команде rake routes

Ещё вопросы

Сообщество Overcoder
Наверх
Меню