【发布时间】:2013-05-18 21:41:44
【问题描述】:
我开始通过 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 生成了一个序列化器。
【问题讨论】:
-
App.Post.find();是异步的,所以我想如果您打开网络选项卡(假设是 chrome),您会立即从浏览器控制台返回undefined,这是正常的,您应该会看到正在发出 xhr 请求,单击它,然后转到子选项卡Response并查看是否有您的数据。如果它在那里,那么一切都正常工作。现在,为什么你在控制台中变得未定义?好吧,我猜因为控制台不是异步的 :) 并且没有等待响应返回,所以你得到了未定义,这有意义吗? -
我了解异步部分,但基于此tutorial 他们如何能够访问数据?我的步骤非常相似,所以我没有做什么? - 谢谢
-
嗯,您使用的教程已经有一年多的历史了……从那时起,在 ember 土地上发生了很多变化,您也许应该使用不同的更新教程。
标签: ruby-on-rails ember.js ember-data ember-rails