Лучший способ упорядочить объект и модели с различными наборами важных атрибутов - PullRequest
1 голос
/ 08 октября 2011

Предположим, у меня есть какое-то медицинское программное обеспечение, которое отслеживает счета и медицинские процедуры для пациентов. Каждый пациент имеет три важные группы атрибутов.

  1. Общие атрибуты - имя, возраст, пол, номер пациента и т. Д.
  2. Атрибуты выставления счетов - адрес, номер счета, баланс и т. Д.
  3. Медицинские атрибуты - артериальное давление, операции, группа крови и т. Д.

У меня есть одна модель пациента ActiveRecord со всеми вышеуказанными атрибутами. Тогда я мог бы иметь контроллер PatientBillingDetails и контроллер PatientMedicalDetails, чтобы различать их. Должен ли я также создать еще две модели, соответствующие каждому контроллеру, или просто взять каждый контроллер из одной модели пациента. При создании двух новых моделей, каков наилучший / самый простой способ использовать их только с соответствующими атрибутами?

1 Ответ

0 голосов
/ 23 октября 2011

Чтобы ответить на ваш вопрос напрямую, в то время как учебные пособия по Rails любят собирать информацию в одном контроллере для одной модели, мой пятилетний опыт написания больших корпоративных приложений на Rails показал мне, что создаваемые вами контроллеры относятся к представлениям, которые вам необходимы. показать, а не личные отношения с моделями. Таким образом, было бы более чем логично создать несколько контроллеров для каждого аспекта вашей модели пациента.

Однако мне кажется, что реальная проблема заключается в том, что ваша модель пациента перегружена попыткой сделать слишком много вещей одновременно. Я бы посоветовал вам нормализовать некоторую информацию в их собственных моделях, особенно в тех случаях, когда вам может понадобиться связь «имеет много», например медицинские атрибуты, записанные в разные даты.

Чтобы дать лучший ответ, мне нужно больше информации о том, что пытается сделать ваше программное обеспечение, в частности, какую категорию «медицинского программного обеспечения» вы пытаетесь написать, и если это вспомогательная утилита для специальности цель или EHR общего назначения или медицинское приложение для выставления счетов.

...