2

我的 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 在他的 Railscast on Ember 中从服务器检索数据所做的事情。他创建了一个 Entry 模型

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

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

 Raffler.EntriesRoute = Ember.Route.extend

  model:  -> Raffler.Entry.find()

你能解释一下我可能做错了什么来让它工作吗?

4

1 回答 1

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

于 2013-09-08T17:18:20.270 回答