无法检索模型数据

时间:2013-05-18 21:41:44

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

我开始通过ember-rails gem使用Ember.js和Rails 3.2.13。我无法使用以下命令通过浏览器控制台访问数据:

var posts = App.Post.find();

它在控制台上返回 undefined ,但在服务器日志中输出以下内容:

Started GET "/posts" for .......
Processing by PostsController#index as JSON
Parameters: {"posts"=>{}}
Post Load SELECT "posts".* FROM "posts"
Completed 200 OK .....

如果我做错了什么或遗失了什么,请告诉我。感谢


以下是我安装ember-rails

的步骤

1)将ember-rails添加到gem文件

2)安装捆绑后,我运行:

  

rails g ember:bootstrap

有MVC目录,app.js,application.js,router.js和store.js.

store.js具有以下内容:

App.Store = DS.Store.extend({
  revision: 11
});

3)然后我做了

rails g scaffold Post title:string body:text

接下来,我添加了active_model_serializer gem并为Post。

生成了一个序列化器

1 个答案:

答案 0 :(得分:0)

您是否可以检查服务器的实际响应(在Chrome中,打开检查器,在网络面板中查找请求并查看响应)?确保服务器实际返回正确的JSON。 (显然,我假设你已经在Rails服务器上创建了一些Post模型。)

接下来,确保序列化工具下列出了正确的attributes;我认为默认情况下它只包含id。

您还可以尝试将ID传递给findApp.Post.find(1),然后再次查看服务器响应。

App.Post.find()是异步的,但它总是返回数据的承诺 - 它永远不会返回undefined。你可以在模型promise上调用.then()并传递一个函数,期望加载的模型作为一个参数,一旦promise解析就会运行。

希望这会有所帮助。尝试检查服务器响应,如果有任何不清楚的地方,请告诉我。