我有一個使用腳手架生成器創建的ProTip
模型。除index
和show
之外的所有操作都要求您成爲管理員。如何從兩個不同的控制器創建模型
我想允許用戶提交自己的ProTip
s,但將其存儲在隊列中,直到有人有機會批准它們。
我能想到的幾種方法可以做到這一點:
創建具有相同的字段
ProTip
一個UserSubmittedProTip
一個完全不同的模式。使用index
,new
和create
動作創建一個新的UserSubmittedProTipController
。在create
操作中,我可以創建一個新的ProTip
,並在保存到數據庫之前將UserSubmittedProTip
中的屬性複製到它。我可以要求管理員執行index
操作,並可以使用它來執行審批。創建一個新的
SubmitController
只有new
和create
的操作。創建一個視圖,該視圖共享部分ProTip
的_form
,但知道要提交哪個控制器。在create
操作中,我可以在保存之前將ProTip.approved
設置爲false
。那麼我將不得不建立一個審批機制。
第一種方法似乎是最簡單的,因爲我不知道如何實現第二種方法。兩種方法都覺得有點笨拙,我想知道這種問題的最佳做法是什麼。
這是解決這個問題的唯一方法嗎? 如果沒有,更聰明的是什麼?否則,這更接近最佳實踐,還是他們明顯錯誤?
完美。感謝您的詳細回覆。有時候,我需要退後一步,意識到有一種更簡單的方法,因爲通常情況下是這樣。 –