使用Ember从服务器获取JSON数据

时间:2013-09-08 14:15:27

标签: ruby-on-rails ember.js ember-rails

我在我的Rails应用程序中有一个Court.rb模型(继承自Active Record),我也在使用ember-rails gem。

我在Ember中为它创建了一个Court模型

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

路由器中有法院资源

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

  });

并且,为了检索数据,我在Court模型上创建了一个调用findAll()的法院路线

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

});

Ember给了我一个很长的错误信息,最后一部分是has no method 'findAll'。我也尝试使用App.Court.find()并得到了同样的错误。

这基本上是Ryan Bates在Ember上的Railscast中从服务器检索数据的行为 他创建了一个Entry模型

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

还有一个在模型上调用find的条目路由

 Raffler.EntriesRoute = Ember.Route.extend

  model:  -> Raffler.Entry.find()

你能解释一下我的错误吗?

1 个答案:

答案 0 :(得分:3)

您可能正在运行最新版本的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