2012-02-08 2 views
0

Я создал простой Rails 3 JSON api с моделью пользователя и контроллером пользователя. Апи сам работает нормально, однако ...Rails 3 - KendoUI - Неисправность доступа к объекту JSON - Неподготовлен ReferenceError

Я пытаюсь использовать источник данных Kendo UI для заполнения сетки, и у меня возникает проблема.

Используя инструмент Chrome сети я могу видеть, что данные JSON возвращается с сервера:

[{"user":{"created_at":"2012-02-08T17:33:27Z","first_name":"Angelina","id":1,"last_name":"Jolie","password":"","updated_at":"2012-02-08T17:33:27Z","user_name":""}},{"user":{"created_at":"2012-02-08T17:34:50Z","first_name":"Milla","id":2,"last_name":"Jovovich","password":"","updated_at":"2012-02-08T17:34:50Z","user_name":""}}] 

Вот является Javascript, который используется для создания сетки и источник данных:

$(document).ready(function(){ 

    var sharableDataSource = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url: "/users", 
       dataType: "json" 

      } 
     }   
    }); 


    $("#grid").kendoGrid({ 
     dataSource: sharableDataSource, 
      columns: [ 
      { 
       title: "First Name", 
       field:"first_name" 
      }, 

      { 
       title: "Last Name", 
       field: "last_name"    
      }] 
    });   

}); 

Определение сетки, по-видимому, работает, потому что при отображении сетки оно отображает «Название», указанное мной в сетке:

enter image description here

Но ... как вы можете видеть, данные не отображаются. И я получаю неперехваченного ReferenceError для поля «first_name»:

enter image description here

Любые мысли о том, что может быть причиной этого?

+1

Думаю, вам нужно отредактировать этот параметр во время процесса инициализации Rails: 'ActiveRecord.Base.include_root_in_json = false' –

+0

Вы, сэр, гений. Я поместил это в файл config/environment.rb, и теперь он работает. Не знаю, почему, но это так. Если вы можете отправить свой комментарий в качестве ответа, я помечаю его как решение. Благодаря! – PhillipKregg

ответ

1

Я думаю, что вам нужно изменить этот параметр во время процесса Rails инициализации:

ActiveRecord.Base.include_root_in_json = false

Update: Рад, что помог ... :) Это происходит потому, что по умолчанию Rails делает это JSON ответ с включенный корневой элемент. Большинство библиотек и фреймворков JS, таких как Kendo, Backbone и т. Д., Не нравится.

+0

Ahhh ok, имеет смысл. Еще раз спасибо! – PhillipKregg

 Смежные вопросы

  • Нет связанных вопросов^_^