Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Ember从服务器获取JSON数据_Ruby On Rails_Ember.js_Ember Rails - Fatal编程技术网

Ruby on rails 使用Ember从服务器获取JSON数据

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");

我的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");
    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”),但您删除了它。