Я думаю, что у меня отключен вложенный ресурс Ember (master-detail). Но я пытаюсь продолжить гнездо на один уровень глубже, но через отношение has_many
в моих данных. Я использую EmberData и Rails в качестве API, который, как мне кажется, настроен и работает по назначению. Но вложение на один уровень ниже в моем шаблоне и маршрутизаторе ставит меня в тупик, и я не могу найти там примеров...
Это мой текущий маршрутизатор (я думаю, с использованием RC1):
EmberGallery.Router.map(function() {
this.resource('uploads', function() {
this.resource('upload', { path: ':upload_id' });
});
this.resource('collections', function() {
this.resource('collection', { path: ':collection_id' });
this.route('new');
});
});
который производит:
/#/uploads/1
/#/collections/1
Отлично, здорово. Но в моем приложении загружается коллекция has_many
, поэтому я пытаюсь перейти к этому URL-адресу (основной-подробности-подробности):
/#/collections/1/2
id:1 - это collection_id
(который содержит кучу загрузок, это отлично работает)
id:2 является upload_id
(как мне это понять?)
Как будет выглядеть мой маршрутизатор? Что еще нужно для того, чтобы это работало?
РЕДАКТИРОВАТЬ: я добавляю шаблон моей коллекции, который отображает и ссылается на загрузки, принадлежащие одной коллекции. В основном это правильно отображает связанные загрузки, но ссылка возвращает меня к #/uploads/1 вместо #/collections/1/2 (2 — это загрузка в коллекции 1). Очевидно, что моя ссылка неверна, но я подозреваю, что моя настоящая проблема в том, что я загружаю коллекции неправильно.
шаблоны/коллекция.js.hbs
<aside class="span8">
<header>
<h4>Collection: {{title}}</h4>
</header>
<ul class="thumbnails">
{{#each upload in uploads}}
<li class="span3">
<aside class="thumbnail">
{{#linkTo 'upload' this}}<img {{bindAttr src="upload.url"}} alt="{{upload.title}}">{{/linkTo}}
{{title}}
</aside>
</li>
{{/each}}
</ul>
</aside>
<article class="span4">
{{outlet}}
</article>