2013-11-25 27 views
0

我有一個應用程序正在處理「患者」。每個病人最初都會有三種形式。每個表格都有相關的問題,但也有不同之處,所以它們不能是相同的表格。每個答案,即使是針對同一個問題,都必須記錄並存檔。此外,每個填寫的表單都需要有一定的版本控制。例如,如果病人「史蒂夫」在「10月5日」填寫了「表格1」,並且第二天將表格中的問題帶走,我仍然需要提出史蒂夫填寫的表格1中的問題。現在,我有四個型號,我認爲解決這個問題,它們是:在Rails中處理與同一模型交互的多個表單

例:名字,姓氏

形式:名稱,版本

form_response:patient_id,form_id

問題:內容,form_id

answers:response,question_id,form_response_id

這是映射出這個數據集的最好方法嗎?另外,是否應該通過患者模型來處理這一切?如果不是,應該使用什麼類型的模型來處理這個問題?我只是對如何最好地處理這種情況感到困惑,至於應該到哪裏去,而不是結束一堆代碼來維護。預先感謝您的幫助。

回答

0

你有正確的ides。從頂部開始:

形式

  • 的has_many問題

問題

  • belong_to形式
  • 的has_many回答

回答

  • belong_to問題
  • belong_to響應

然後你一起響應比分扳成:

響應

  • belongs_to的病人
  • belongs_to的形式
+0

謝謝你這麼多的響應。知道我在正確的軌道上,這真是太好了。至於如何在模型中處理這個問題,你認爲一個好的策略會是什麼?是通過患者模型來處理所有事情,還是將其委託給外部人員? – sturoid

+0

@sturoid如果是我,我會讓表單處理所有這些,並將患者ID存儲在會話中(或其他),然後在最後創建響應。嵌套模型表單也將成爲您的朋友:http://railscasts.com/episodes/196-nested-model-form-part-1 – drewwyatt

+0

非常感謝您的幫助。我會打坐這個。 – sturoid

相關問題