1

我有一個演示模型,我通過一種形式以通常的方式創建。創建多個資源的頁面應該在哪裏生存?

表現模型有兩個嵌套的資源:記錄模式和SlideDeck型號:

class Presentation < ActiveRecord::Base 

has_one :recording 
has_one :slide_deck 

end 

我有一個Flash組件,允許用戶錄製演示文稿,並通過其持續時間添加幻燈片。一旦用戶完成了創建和編輯演示文稿,他們點擊保存。

此時我需要在演示文稿中創建Recording和SlideDeck作爲嵌套資源。這意味着從一個表單創建兩個模型。

我的問題是這個網頁應該放在哪裏?如果組件僅創建了Recording,則頁面將從recording_controller上的新操作呈現,並且如果它僅創建SlideDeck,則頁面將從新的slide_deck_controller呈現。然而在這種情況下,我正在同時創建兩個。

那麼組件在哪裏生活?是否應通過presentation_controller上的操作呈現;另一個編輯動作?在某種意義上,這個頁面允許通過創建嵌套資源來編輯演示文稿。

+0

這樣的聲音會進入PresentationsController#new和#create。 –

+0

@RobDavis謝謝。除了兩個問題之外,這是有道理的。 1.我希望能夠獨立於製作錄音創建演示文稿,2.從可用性的角度來看,我希望在創建/編輯演示文稿的任務 - 名稱,說明等和錄製任務之間進行某種分離/編輯錄制和SlideDeck。鑑於我需要將這兩項任務分散在不同的頁面中,將PresentationsController的錄製/編輯任務作爲一個單獨的操作處理有什麼問題嗎? – Undistraction

回答

0

我想它應該是nested_attributes在演示模型中的一部分,比你可以與所有的信息添加到演示文稿創建或更新操作

+0

謝謝。我同意。這很可能是錄製完成後提交數據的最佳方式,但播放器應該放在哪裏?什麼行動應該呈現其頁面? – Undistraction

1

通常情況下,PresentationController#編輯(以及相應的#UPDATE)用於修改'演示文稿'模型。如果您已經有#edit和相應的#update,並且您希望在單獨的操作中創建記錄,則需要創建另一對操作。另一個選擇是你可以使#update的通用性足以處理「正常編輯」和「創建記錄」。在這種情況下,#edit和#record操作都可以將表單提交到#update操作。