我的 Rails 应用程序中有一个 Court.rb 模型(继承自 Active Record),我也将其与 ember-rails gem 一起使用。
我在 Ember 中为其创建了一个法院模型
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 中从服务器检索数据所做的事情 他创建了一个入门模型
Raffler.Entry = DS.Model.extend({
name: DS.attr('string'),
winner: DS.attr('boolean')
});
还有一个在模型上调用 find 的 Entries 路由
Raffler.EntriesRoute = Ember.Route.extend
model: -> Raffler.Entry.find()
你能解释一下我可能做错了什么才能让它发挥作用吗?
最佳答案
您可能正在运行最新版本的 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
关于ruby-on-rails - 使用 Ember 从服务器获取 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18684701/