EmberJS 2.7 エラー: アサーションに失敗しました:id
渡されたものfindRecord()
は空でない文字列または数値でなければなりません
app/templates/products/index.hbs: [モデル内/各ループにこの行があります]:
{{#link-to 'categories.edit' product.category.id}}<a href="">{{product.category.name}}</a>{{/link-to}}
app/router.js: [これらのルートを定義しました]:
this.route('products', function() {
this.route('new');
this.route('edit', { path: '/:product_id/edit' });
});
this.route('categories', function() {
this.route('new');
this.route('edit', { path: '/:category_id/edit' });
});
製品を編集するときに機能します。ただし、カテゴリを編集しようとすると、上記のエラーがスローされます。
「categories/edit」ルートを削除し、代わりにこのルートを追加すると:
this.route('category', { path: '/categories/:category_id/edit' });
それを使用するようにテンプレートを変更します。
{{#link-to 'category' product.category.id}}<a href="">{{product.category.name}}</a>{{/link-to}}
その後、動作します。この2番目が機能する理由を理解しています。しかし、なぜ最初のものは機能しないのでしょうか?
編集:ここにモデルがあります
アプリ/モデル/product.js:
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
description: DS.attr('string'),
category: DS.belongsTo('category', { async: true })
});
アプリ/モデル/category.js:
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
products: DS.hasMany('product')
});