визуализация возвращенных данных с контроллера rails через ajax

#jquery #ajax #ruby-on-rails-3 #json

#jquery #ajax #ruby-on-rails-3 #json

Вопрос:

В приложении rails я пытаюсь получить несколько записей с помощью Ajax / jQuery, получаю правильные данные, но проблема в том, как мне проанализировать возвращенные данные и отобразить их в виде HTML?

моя функция js

  $.ajax({
        url: "/questions/retrieve_function",
        dataType:'json',
        data: {
            'obsolete': 1
    },
    success: function(data){
        $.each(data, function(key, value) {
            alert(key   ", "   $.param(value));
        });

    },
    error: function(){
        alert('error');
    },
    type: 'GET'
});
  

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

 def retrieve_function
 obsolete = params[:obsolete]
 @values = values.find(:all, :conditions => ["obsolete = ?", obsolete])
  respond_to do |format|
   format.html
   format.json { render :json => @values }
  end
end
  

в настоящее время я использую $.param, чтобы проверить, получаю ли я правильные значения, любая помощь будет оценена по достоинству, спасибо 🙂

Обновить

Возвращенный формат

 "[[
  {"question":{"created_at":"2011-09-26T12:56:41Z","choicea":"dg<br>","qtype":"multiple","title":"dfgdfg<br>","choiceb":"dg<br>","updated_at":"2011-10-10T14:41:52Z","choicec":"dfg<br>","choiced":"dg<br>","id":50,"hint":"dg<br>","obsolete":1,"correctans":"C"}}

]]"
  

Ответ №1:

Сначала в вашем формате json должна быть только одна скобка, вам нужно изменить код вашего сервера таким образом. И тогда вы можете использовать эту функцию для получения ваших значений из json

 $.each(data,function(key,value){
    alert(key " - " value.question.title   " - " value.question.created_at " ...")
})
  

Комментарии:

1. на самом деле даже я в замешательстве по поводу этого Sedat, позвольте мне проверить и опубликовать формат.

2. Я жду вашего формата. возможно, вы можете использовать это в своем методе успеха: alert(JSON.stringify(data)), чтобы узнать ваш формат, возвращенный с сервера

3. я опубликовал формат, мне понадобится плагин json2 для stringify, верно?

4. я проверил возвращенный формат в jsonlint и обнаружил его недопустимый json

5. я преобразовал возвращенные данные в json с помощью to_json, теперь я получаю следующий формат