2013-08-26 49 views
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> 
+0

这很奇怪,你的代码很简单,但是会出现这个错误。你能展示你的模板吗? –

+0

错误来自于烬数据的json序列化程序,它试图通过调用toString()来获取(App.Post的子类)而不是预期的“App.Post”来确定模型的名称。这也是为什么网址看起来很疯狂。好奇你的API响应是什么样子的。 –

回答

2

更新到最新版本和一切w orked。