2012-10-02 14 views
0

我有三個模型和它們相應的表格和控制器:如何在Rails中對其進行編碼?

  • 請求
  • DirectPatch
  • UTPFiberPatch

用戶創建一個新的請求,並且限定的請求的類型:直接或UTP /光纖

一旦用戶點擊保存,該請求將被保存,用戶將被重定向到編輯屏幕crea填寫與該請求相對應的所有補丁條目。

  • 根據所選請求的類型,每個補丁條目將作爲單行保存在Direct或UTP表中。名爲request_id的列將充當外鍵。
  • 對於Direct和UTP /光纖,視圖和窗體都會有所不同。
  • 用戶可以查看單個主頁上的所有請求,然後單擊進行編輯。然後,用戶可以在單個頁面上查看該請求的所有修補程序行,然後單擊以編輯現有的或添加新的。

    1. 什麼是最好的方式來設置路由,控制器和 意見呢?
    2. 當創建新補丁並自動保存時,請求ID如何通過?

我不知道到底是什麼技術名稱是我在,如果有一個問題,但我很高興能加入更多的細節,如果需要回答的問題。

回答

0

你可以在請求模型中使用多態關聯:

belongs_to :patch, :polymorphic => true 

添加到您的申請表中的兩列:

patch_id : integer 
patch_type : string 

當你創建一個請求和用戶選擇的貼片式,您將此修補程序對象分配給您的請求,該請求將填充兩個新列。從您請求模型,你可以調用

request.patch 

,這將給你回基於存儲在數據庫中的細節補丁的適當類型(注 - 你不能做多態關聯預先加載)。

要做視圖,您可以在編輯屏幕上渲染一個部分,這取決於它是哪種類型的修補程序。

+0

謝謝,我剛剛閱讀了關於多態關聯的更多信息,並想知道這是否是最好的方法?從邏輯角度來看,請求具有許多DirectPatches或UTPFiberPatches,具體取決於所選請求的類型。但是你說聯想是相反的,請求屬於補丁? –

相關問題