Emberjs:findAll方法缺少商店

时间:2012-07-02 03:06:02

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

我正在尝试让emberjs在rails上工作,并且一直在学习本教程:

http://www.zhubert.com/blog/2012/04/28/ember-dot-js-and-rails-part-2/

当我尝试在浏览器控制台中运行此命令时:

var posts = App.store.findAll(App.Post)

我收到错误,因为商店里没有findAll方法。我正在使用ember-data并正在设置这样的商店:

App.store = DS.Store.extend({
  revision: 4,
  adapter: DS.RESTAdapter.create()
});

我一直在使用余烬轨道发电机,但整个事情看起来很好看,请帮忙!

2 个答案:

答案 0 :(得分:3)

使用Ember的新路由器时,它希望您提供一个名为App.Store的类。然后将其实例化为App.router.storestore属性也会在路由器实例化的任何控制器上自动设置。

答案 1 :(得分:0)

好的修复了问题。 rails生成器生成了错误的代码。

此:

App.store = DS.Store.extend({
  revision: 4,
  adapter: DS.RESTAdapter.create()
});

应该是:

App.store = DS.Store.create({
  revision: 4,
  adapter: DS.RESTAdapter.create()
});

另外,我可能会提到其他任何有问题的人,ember-rails生成器也会创建这个:

App.ApplicationController = Ember.ObjectController.extend({

});

应该是:

App.ApplicationController = Ember.Object.extend({

});