我开始通过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。
生成了一个序列化器答案 0 :(得分:0)
您是否可以检查服务器的实际响应(在Chrome中,打开检查器,在网络面板中查找请求并查看响应)?确保服务器实际返回正确的JSON。 (显然,我假设你已经在Rails服务器上创建了一些Post
模型。)
接下来,确保序列化工具下列出了正确的attributes
;我认为默认情况下它只包含id。
您还可以尝试将ID传递给find
:App.Post.find(1)
,然后再次查看服务器响应。
App.Post.find()
是异步的,但它总是返回数据的承诺 - 它永远不会返回undefined。你可以在模型promise上调用.then()
并传递一个函数,期望加载的模型作为一个参数,一旦promise解析就会运行。
希望这会有所帮助。尝试检查服务器响应,如果有任何不清楚的地方,请告诉我。