我在我的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()
你能解释一下我的错误吗?
答案 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