0
我试图使用烬与Rails一起,但得到一个奇怪的错误。简单的灰烬+灰烬数据+ Rails应用程序
这是一个非常简单的嵌套路线测试。
我有一个名为“邮报”一轨资源,就像在灰烬文档视频:
https://github.com/tildeio/bloggr-client,我已经得到了几乎所有的工作。
http://domain.com/admin#/posts/ works fine
点击帖子,显示我的详细信息,更改网址。
但是当我试图直接加载:
http://domain.com/admin#/posts/1
错误发生。
这是我的控制台输出:
DEBUG: ------------------------------- ember.js?body=1:382
DEBUG: Ember.VERSION : 1.0.0-rc.7 ember.js?body=1:382
DEBUG: Handlebars.VERSION : 1.0.0 ember.js?body=1:382
DEBUG: jQuery.VERSION : 1.10.2 ember.js?body=1:382
DEBUG: ------------------------------- ember.js?body=1:382
Assertion failed: Your model must not be anonymous. It was (subclass of App.Post) ember.js?body=1:382
GET http://localhost:3000/post)s/1 404 (Not Found) jquery.js?body=1:8707
Error while loading route:
Class {id: "1", store: Class, _reference: Object, currentState: Object, _changesToSync: Object…}
ember.js?body=1:382
Uncaught <(subclass of App.Post):ember269:1>
奇怪的是,灰烬正在生成URL,http://domain.com/post)s/1
这是哪里)正在添加从?
这是我的JS:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require bootstrap_bootstrap
//= require chosen-jquery
//= require bootstrap-wysihtml5
//= require bootstrap-wysihtml5/locales/pt-BR
//= require handlebars
//= require ember
//= require ember-data
//= require_self
// for more details see: http://emberjs.com/guides/application/
App = Ember.Application.create({
rootElement: '#ember_root'
});
App.Store = DS.Store.extend({
revision: 12,
adapter: DS.RESTAdapter
});
App.Router.map(function() {
this.resource('posts', function() {
this.resource('post', { path: ':post_id' });
});
});
App.PostsRoute = Ember.Route.extend({
model: function() {
return App.Post.find();
}
});
var attr = DS.attr;
App.Post = DS.Model.extend({
title: attr('string'),
description: attr('string')
});
//= require_tree .
编辑:
这是的JSON我的应用程序消耗:
{"posts":[{"id":7,"title":"teste","description":"su o autor"}]}
我的观点:
<script type="text/x-handlebars">
<div class="row">
<div class="span9">
{{outlet}}
</div>
<div class="span3">
<div class="well sidebar-nav">
<h3>Ember Sidebar</h3>
<ul class="nav nav-list">
<li class="nav-header">Sidebar</li>
<li>{{#linkTo 'posts'}}Posts{{/linkTo}}</li>
</ul>
</div>
</div>
</div>
</script>
<script type="text/x-handlebars" id="posts">
<div class="container-fluid">
<div class="row-fluid">
<div class="span3">
<table class='table'>
<thead>
<tr><th>Recent Posts</th></tr>
</thead>
{{#each model}}
<tr><td>
{{#linkTo 'post' this}}{{title}}{{/linkTo}}
</td></tr>
{{/each}}
</table>
</div>
<div class="span9">
{{outlet}}
</div>
</div>
</div>
</script>
<script type="text/x-handlebars" id="posts/index">
<p class="text-warning">Please select a post</p>
</script>
<script type="text/x-handlebars" id="post">
<h1>{{title}}</h1>
<h2>{{{description}}}</h2>
<hr>
</script>
这很奇怪,你的代码很简单,但是会出现这个错误。你能展示你的模板吗? –
错误来自于烬数据的json序列化程序,它试图通过调用toString()来获取(App.Post的子类)而不是预期的“App.Post”来确定模型的名称。这也是为什么网址看起来很疯狂。好奇你的API响应是什么样子的。 –