Получение данных JSON с сервера с помощью Ember

У меня есть модель Court.rb (унаследованная от Active Record) в моем приложении Rails, которое я также использую с гемом ember-rails.

Я создал модель для суда в Ember

 App.Court = DS.Model.extend({
    jurisdictionId: DS.attr('number'),
    name: DS.attr('string')
  });

В роутере есть ресурс кортов

  App.Router.map(function() {
    this.resource("courts");
    this.resource("about");

  });

и, чтобы получить данные, я создал маршрут судов, который вызывает findAll() в модели суда

App.CourtsRoute = Ember.Route.extend({
  model: function() {
    return App.Court.findAll();
  }

});

Эмбер дает мне длинное сообщение об ошибке, последняя часть которой гласит: has no method 'findAll', Я также пытался использовать App.Court.find() и получил ту же ошибку.

По сути, именно это и сделал Райан Бейтс, чтобы получить данные с сервера в своем Railscast на Ember. Он создал модель Entry.

Raffler.Entry = DS.Model.extend({
  name: DS.attr('string'),
  winner: DS.attr('boolean')
});

А также маршрут Entries, который вызывает находки на модели

 Raffler.EntriesRoute = Ember.Route.extend

  model:  -> Raffler.Entry.find()

Можете ли вы объяснить, что я могу сделать неправильно, чтобы заставить это работать?

1 ответ

Решение

Вы, вероятно, используете последнюю версию Ember Data,

Попробуйте использовать:

return this.store.find('court'); вместо return App.Court.findAll();

Вот jsfiddle, показывающий простую структуру: http://jsfiddle.net/XUmTC/2/

Для получения дополнительной информации о переходе смотрите здесь: https://github.com/emberjs/data/blob/master/TRANSITION.md

Другие вопросы по тегам