Ruby on rails 使用Ember从服务器获取JSON数据
我的Rails应用程序中有一个Court.rb模型(继承自活动记录),我也在使用ember Rails gem 我在余烬为它创建了一个法庭模型Ruby on rails 使用Ember从服务器获取JSON数据,ruby-on-rails,ember.js,ember-rails,Ruby On Rails,Ember.js,Ember Rails,我的Rails应用程序中有一个Court.rb模型(继承自活动记录),我也在使用ember Rails gem 我在余烬为它创建了一个法庭模型 App.Court = DS.Model.extend({ jurisdictionId: DS.attr('number'), name: DS.attr('string') }); 路由器中有一个资源 App.Router.map(function() { this.resource("courts");
App.Court = DS.Model.extend({
jurisdictionId: DS.attr('number'),
name: DS.attr('string')
});
路由器中有一个资源
App.Router.map(function() {
this.resource("courts");
this.resource("about");
});
为了检索数据,我创建了一个courts路由,在Court模型上调用findAll()
App.CourtsRoute = Ember.Route.extend({
model: function() {
return App.Court.findAll();
}
});
Ember为此给了我一个很长的错误消息,最后一部分说没有方法“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()
你能解释一下我为了让它工作可能做错了什么吗 您可能正在运行最新版本的余烬数据 尝试使用:
返回此.store.find('court')代码>而不是返回App.Court.findAll()代码>
下面是一个JSFIDLE,它显示了一个简单的结构:
有关转换的更多信息,请查看此处:您使用的是哪个版本的余烬/余烬数据?@kroofy我昨天运行了此命令以获取最新版本rails generate-Ember:install--head
无论是什么。尝试使用返回此.store.find('court')模型中的代码>谢谢您的尝试,但它给了我一个错误<代码>断言失败:来自findAll的响应必须是数组,而不是{courts:[对象对象],[对象对象],[对象对象对象]…
我认为Ember需要根courts
(在本例中)在从服务器返回的json中。你认为这是问题所在吗?它应该使用根键courts
,可能json的格式不正确?你能用fixture数据制作一个JSFIDLE吗?我试图让其他人的Ember摆弄一些fixture数据,但我不知道如何让它工作。但是,你可以看到fixture数据以及我添加的代码。添加了一个提琴。因此,如果切换到real backend时这对您不起作用,可能是数据格式不正确。非常感谢。我认为Ember希望JSON数据具有根(在本例中为“courts”),但您删除了它。