내가 (이가 MongoDB를를 사용 Sails.js에 의해 제공됩니다)은 다음과 같이Ember.js 편안하고 모델 관계
내 라우터 설정이 편안 서버에서 데이터를 검색에 관해서 Ember.js에서 모델과 관련된 문제에 봉착 :
App.Router.map(function() {
this.route("dashboard");
this.resource('exams', {path: "/exams"}, function() {
this.resource('exam', {path: ":exam_id"}, function(){
this.resource('questions', function() {
this.route("new");
})
})
this.route("view", {path: "/:exam_id" }); // for viewing exam details
});
});
는 기본적으로 나는 가능한 검사의 목록을 받고 수있는 하나의 질문의 관련 목록을 보려면 그것을 클릭의 각에 대한 몇 가지 세부 사항을 편집하고 있습니다.
http://localhost:1337/api/v1/exams
산출 : 자원이 포함되지 않고 저장됩니다
{
exams: [
{
user_id: "52444c03268a31ea0b000001",
title: "Introduction test",
private: false,
active: false,
showResults: false,
random: false,
_id: "52471342445565e74600000a"
},
...
]
}
질문을 별도의 모음입니다
그래서처럼 편안한 어댑터와 액세스되는 시험 자원 아무런 문제가 없다 별도로 액세스됩니다 :http://localhost:1337/api/v1/questions
결과 :
{
questions: [
{
_id: "52483f404617e6c728c4ed93",
title: "What's the capital of Moscow?",
exam_id: "52471342445565e74600000a"
},
{
_id: "52483f6e4617e6c728c4ed94",
title: "What's the capital of Switzerland?",
exam_id: "52471342445565e74600120a"
}
]
}
그러나 질문은 항상 시험과 관련이 있어야합니다. 지금까지 Ember.js에서 휴식 경로를 중첩 할 수는 없습니다. 이상적인 휴식 경로는 다음과 같습니다.
http://localhost:1337/api/v1/exams/52471342445565e74600000a/questions
특정 시험에 대한 모든 질문은 얻을 수 있지만 확실하지 않습니다. 적어도 나는 그것을 일하게하는 관리자가 결코 없다. 내가 원하는 결과를 반환
http://localhost:1337/api/v1/questions/52471342445565e74600000a //<-- exam_id
은 ... 오직 이것이다 :
그래서 평안 특정 시험과 관련된 질문의 목록을 가져 exam_id와 질문을 조회하기로 결정 간단하게 할 유지 Ember.js에서 허용하지 않는 것은 특정 질문이있는 단일 질문을 받고 있다고 생각하기 때문입니다. 나는 또한 URL을 매개 변수 (../?exam_id=52471342445565e74600000a) 편안한 경로 질문에 exam_id를 밀고로 노력했지만 queryParams는 아직 Ember.js의 일부가 아닌 것 같습니다. Github에서 볼 수 있듯이 적어도 v 1.2 이전에는 그렇지 않았습니다.
내 질문은 : 어떻게 관련이 있고 외래 키를 증명하여이 두 모델을 쿼리합니까? 나는 모든 것을 한 가지로 포함하고 싶지 않습니다. 아니면 모델 간의 관계를 관리하는 더 좋은 방법이 있을까요?
하나의주의 사항 : 필요한 레코드 만 검색하고 전체 미리 가져온 데이터를 정렬하지 않으려면 서버를 올바르게 쿼리 할 수 있어야합니다. 다른 시험이 다른 사용자에게 속하고 다른 시험에 대한 질문이 다른 시험에 표시 (조회) 될 수 없기 때문입니다.
필자는 Ember.js에 다소 익숙해 졌으므로 모든 제안 (또는 더 나은 것은 물론 실제 사례)을 높이 평가할 수 있습니다.
당신이 엠버 데이터를 사용하고 있습니까? – Kingpin2k