REST APIからデータを取得するルートがあります。ユーザーが初めて入力すると、データは保存されません。そのため、デフォルト値でレコードを作成する必要があります。私はこのルートでこれを行う必要があると思うので、ユーザはsave
アクション中に作成するのではなく、私のデフォルト値(私の実際のアプリケーションではnullではない)を見ることができます。Ember:見つからない場合は新しいレコードを作成する
ただし、データベースにデータがある場合は、そのレコードを返す必要があります。今、私は立ち往生していて、何か正しいことをしてはならない(恐らく約束と関係しているが、わからない)。
私が手にエラーがある:のようなので、
var project = this.modelFor('project');
var projectDates = this.store.find('project-date', project.id);
if (projectDates) {
return projectDates;
} else {
return this.store.createRecord('project-date', {
project: project.id,
start: null,
checkpointA: null,
finish: null
};
}
不可解な事は、私はちょうど、他の戻り値を得るために、私if
文を否定した場合ということです(:
Error while processing route: project.dates Assertion Failed:
Expected an object as `data` in a call to `push` for [email protected]:project-date: ,
but was undefined
は、ここに私の経路コードです:if (!projectDates)
)私はまだ上記のエラーが表示されますが、モデルも読み込まれます!私は、API(または私のモックAPI)がオブジェクトとして適切な形式でデータを返すことを確認しました。
あなたの代わりに(「プロジェクト日付」検索中とcreateRecordで単数化モデル名を使用してはいけません'project-dates')?おそらく、 –
。私はちょうど編集しました。名前が他の誰にも意味をなさないので、私は実際のコードから再入力しました。 – redOctober13
APIは適切なJSON API形式でデータを返しますか?あなたのAPI呼び出しのルートにあるべき 'data'オブジェクトがないので、あなたの呼び出しがデータを返して実際にエラーを引き起こしているようです。 – Nazim