2013-11-25 2 views
0

У меня есть приложение, которое имеет дело с «пациентами». Каждый пациент будет иметь три формы, с которыми они имеют дело вначале. У каждой формы есть связанные вопросы, но у них также есть различия, поэтому они не могут быть одной и той же формой. Каждый ответ, даже если он по одному и тому же вопросу, должен записываться и архивироваться. Кроме того, в каждой заполненной форме должно быть некоторое чувство исполнения версий. Например, если пациент «Стив» заполняет «Форму 1» на «5 октября», а на следующий день вопрос отбирается из формы, мне все равно нужно потянуть вопросы, которые Стив заполнил на Форме 1 . Сейчас у меня есть четыре модели, которые я думаю решить эту проблему, которые являются:Обработка нескольких форм, взаимодействующих с одной и той же моделью в Rails

пациентов: first_name, Last_name

формы: название, версия

form_response: patient_id, form_id

вопросы: содержание , form_id

отвечает: response, question_id, form_response_id

Будет ли это лучший способ наметить этот набор данных? Кроме того, следует ли все это обрабатывать через модель пациента? Если нет, какой тип структуры модели следует использовать для этого? Я просто очень смущен тем, как лучше справиться с этой ситуацией, насколько то, что должно идти туда, а не заканчиваться беспорядком кода для поддержки. Спасибо заранее за вашу помощь.

ответ

0

У вас есть права. Начиная с вершины:

форма

  • has_many вопросы

вопросы

  • belong_to формы
  • has_many ответы

отвечает

  • belong_to вопрос
  • belong_to ответ

Затем связать его вместе с ответом:

ответ

  • belongs_to пациента
  • формы belongs_to
+0

Спасибо большое за ответ. Это здорово знать, что я на правильном пути. Насколько можно справиться с этим в моделях, как вы думаете, хорошая стратегия? Будет ли это обрабатывать все через модель пациента или делегировать ее за пределы? – sturoid

+0

@sturoid Если бы это был я, я бы позволил этой форме обработать все это и сохранить идентификатор пациента в сеансе (или что-то еще), а затем создать ответ в конце. Вложенные формы моделей также будут вашим другом здесь: http://railscasts.com/episodes/196-nested-model-form-part-1 – drewwyatt

+0

Спасибо за тонну за вашу помощь. Я буду размышлять над этим. – sturoid

0

Я хотел бы предложить, глядя в виде объектов, чтобы сделать это намного проще.Вы можете оформить:

Form-backing objects for fun and profit

Rails Form Objects

Form Objects

+0

Я действительно склонялся к этому методу. Как бы вы справились с действиями маршрутизации и контроллера/контроллеров для этого? Поэтому у меня будет 3 формы, которые все хотят взаимодействовать с моделью пациента. Будете ли вы использовать новый контроллер и контроллеры? – sturoid

Смежные вопросы