Я создаю приложение, в котором можно создавать опросы. В каждом опросе есть несколько вопросов. Я встраиваю вопросы в модель опроса (с embeds_many
в Mongoid), поэтому опрос может выглядеть так:
{
"id": "4f300a68115eed1ddf000004",
"title": "Example Survey",
"questions":
[
{
"id": "4f300a68115eed1ddf00000a",
"title": "Please describe your experience with backbone.js",
"type": "textarea"
},
{
"title": "Do you like it?",
"id": "4f300a68115eed1ddf00000b",
"type": "radiobutton",
"options": ["Yes", "Yes, a lot!"]
}
]
}
Теперь есть также редактор опроса, который состоит из SurveyView
, в котором отображается опрос и перечислены вопросы. Если я нажму на один вопрос, появится всплывающее окно QuestionView
, где я могу отредактировать вопрос. Когда я удовлетворен своим опросом и нажимаю кнопку «Сохранить», на сервер будет отправлена модель SurveyModel
.
Как лучше всего справиться со встроенной ассоциацией?
Если я передаю survey.get ("questions") [any_index]
в QuestionView
, и вопрос изменится, мне придется вручную искать вопрос .id
в моей модели и обновить мою модель. Это неправильно.
Если я создам QuestionsCollection
в моей SurveyModel
(возможно ли это вообще?).Затем я могу делать такие вещи, как выборка вопроса
из этой коллекции по идентификатору, передача его в представление, и когда я изменяю модель, все будет обновляться автоматически, но я должен указать URL-адрес
в коллекции, и магистраль будет отправлять на сервер отдельные вопросы, если что-то обновляется.
Есть предложения, как сделать это магистральным способом?