Итак, я создаю разные леса, которые используют функции «Один ко многим» в Tower, но я не могу понять, как на самом деле связывать связанные экземпляры, чтобы использовать отношения. Например, мои самые последние строительные леса были получены так:Как использовать отношения «один-ко-многим» в Tower.js?
tower generate scaffold User email:string firstName:string lastName:string hasMany:posts
tower generate scaffold Post title:string body:text userId:integer belongsTo:user
Теперь в рельсах, что поле идентификатор пользователя, на пост модели, сформирует связь с пользователем обмена, что идентификатор, а затем вы можете использовать это для доступа к отношениям. Но здесь он ничего не делает. Попытка использовать любой из кода отсюда: https://github.com/viatropos/tower/wiki/1-n просто дает мне ошибки.
В консоли башни, я был в состоянии создать пример пользователя и пост (я могу это сделать достаточно легко, запустив сервер и с помощью формы на веб-странице), например так:
tower> user = new App.User
tower> user.attributes = { email: "[email protected]", firstName: "bill", lastName: "billiams" }
tower> post = new App.Post
tower> post.attributes = { title: "A Post", body: "This is a short post.", userId: "4fbf23224503fe670e000006" }
И эти экземпляры сохранялись в базе данных, но когда я пытаюсь код, как:
tower> user.get('posts').exists()
Я получаю «Ошибка типа: не удается вызвать метод„существует“неопределенных». Точно так же, называя:
tower> user.get('posts').create(title: 'Berlin never sleeps.')
производит "TypeError: Невозможно вызвать метод 'создать' неопределенный". То же самое происходит, если я попробую что-нибудь подобное в моделях или контроллерах. Я действительно застрял здесь и несколько дней пытался выяснить, как это работает, но я не знаю, где еще искать. Если у кого-нибудь есть пример кода, который я мог бы заглянуть, это было бы потрясающе, иначе было бы полезно объяснение рода. Благодарю.
[Edit: Мой рабочий пример, наряду с подробным README разъясняются шаги, можно найти здесь: https://github.com/edubkendo/demoApp]
Спасибо, это определенно указывает мне в правильном направлении. Итак, как вы можете заставить его фактически установить связь между отдельным пользователем и конкретным сообщением, например? –
Только что понял, что я не учитываю асинхронный характер вызовов в базе данных. Представьте, что это была одна из самых больших причин, почему материал не работает для меня ... lol –
Получил это! Еще раз спасибо, никогда бы не подумал, что он работает как метод, а не геттер/сеттер. Когда-то у меня была эта штука, а потом я понял, что все стараюсь делать все синхронно, вместо того, чтобы асинхронно, все это встало на свои места. Скоро будет пример, и я вернусь сюда и свяжусь с ним. –