2015-01-06 2 views
1

누군가가 왜 내가 깨끗한 아이디 대신 ObjectID의 전체 값을 얻고 있는지 설명 할 수 있습니까?유성 철차 : 라우터 문제 ID 받기

이 내가지고있어 무엇 :

enter image description here

그리고 HTML 출력 :

<a href="/summary/ObjectID(%2254ab87a24c38814aa128da7b%22)">My Post</a> 

나는 일반에서 아무 짓도하지 않았습니다. 바로 지금 아주 기본적인 것들. 처음으로 유성을 시험해보십시오.

라우팅 : lib 디렉토리/router.js

// Dashboard 
Router.route('/dashboard', {name: 'dashboard'}); 

// Post detail 
Router.route('/summary/:_id', { 
    name: 'postSummary', 
    data: function() { 
     return Post.findOne(this.params._id); 
    } 
}); 

목록 페이지 템플릿 : 템플릿/게시물/post_dashboard.html

{{#each posts}} 
    <tr> 
     <td> 
      <p><a href="{{pathFor 'postSummary'}}">{{title}}</a></p> 
      <p><small>Created at {{createdAt}}</small></p> 
     </td> 
     ... 
    </tr> 
{{/each}} 

세부 사항 페이지 템플릿 : 템플릿/글/post_summary .html

<template name="postSummary"> 
    {{> postHeader}} 

    <h3>{{title}}</h3> 
</template> 

템플릿 도우미 : 여기 템플릿/글/posts.js

Template.dashboard.helpers({ 
    posts: function() { 
     return Post.find({}); 
    } 
}); 

그리고 그것이 필요 그냥 경우에, 내가 설치 한 패키지입니다. 콘솔에서 Posts 수집을 쿼리 할 때 반환 된 문서 (들) 리터럴 문자열이나 ObjectId가 객체의 _id

meteor-platform 
autopublish 
insecure 
matthew:foundation5-sass 
iron:router 
jquery 
useraccounts:core 
useraccounts:foundation 
accounts-password 
accounts-facebook 
accounts-google 
accounts-ui-unstyled 
aldeed:autoform 
aldeed:collection2 
forwarder:autoform-wizard 
fortawesome:fontawesome 

답변

5

입니까?

이것이 후자라고 가정하면 그것이 일어나는 이유입니다. 그렇다면 아마도 Mongo 셸에서 insert을 사용하여 컬렉션을 채웠거나 기존 MongoDB에서 복원했기 때문일 수 있습니다. 기본적으로, Meteor insert는 id가 지정되지 않은 경우 자동 추가 된 id에 문자열을 사용하지만 Mongo는 ObjectIds를 사용합니다.

도움이 되었으면 좋겠지 만 완전히 잘못된 트랙에 있다면 알려주세요!

+0

예. mongo shell을 통해 데이터를 삽입했습니다. 어쨌든, 그냥'유성 재설정 '을하고 대신 브라우저 콘솔과 스크립트를 통해 데이터를 삽입하려고했습니다. 둘 다'insert failed : Error : Sample is required'를 반환합니다. – RZKY

+0

그것은 Collection2로 정의한 스키마에 있기 때문에 삽입하려는 항목이 아니기 때문입니까? – richsilv

+0

나는 당신이 의미하는 것을 이해하지 못합니다. 이 Collection2는 무엇입니까? – RZKY

0

몽고 ObjectID는 속성을 가지고 있습니다 : _str 그것은 ID의 문자열 표현을 포함합니다.

+0

음 ... 어쩌면 나는 바보예요. 'this.params._id._str'는 여전히 전체 ObjectId를 반환합니다. – RZKY

+0

흠. 게시물 모음이 이상합니다. P 어떻게 문서를 삽입합니까? – MatiK

+0

Ok - 이제 위의 주석을 보았습니다. 이제는 내게 더 명확 해집니다. 문서를 삽입 할 때 mongo 셸을 사용하면 문서가 제대로 작동하지 않을 것입니다. – MatiK