2013-01-12 38 views
0

我有一個控制器來處理測驗中的CRUD操作,稱爲QuizController。REST API命名約定問題

然後,用戶可以參加當前測驗(一次只能有一個測驗)。

很容易命名該控制器QuizController,如果命名空間不同,我也可以。但這對我來說並不足以描述。

它可以被稱爲QuizResultsController。但是那也不是很好。

你會如何命名這樣的控制器,向用戶顯示當前測驗,讓他們提交答案?

回答

1

按照慣例,控制器處理您的測驗的CRUD操作應該被稱爲QuizzesController,釋放QuizController用於您所描述的上下文中。

這就是說,我會去與QuizzesControllerCurrentQuizController作出更大的區別。

+0

你說得對,它已經QuizzesController,我的壞。我想你也是在你建議的控制器名稱的正確軌道上。唯一值得擔憂的是,如果計劃改變爲可以在任何特定時間進行多次測驗的地方,那麼可能需要進行很多更改。雖然我可能會去...謝謝! – 99miles

+0

我知道,這與原始問題有點不同,但我很好奇,如果用戶正在參加任何測驗之一,您會將其稱爲控制器? – 99miles

1

您可以在QuizzesController上添加#current操作,該操作顯示當前的測驗,如果您不想創建整個單一用途的控制器。

+0

然後,我不得不添加另一種方法來處理表單提交,其中含有像#current_create這樣的模糊內容。我正在爭取單一職責。 – 99miles

+0

爲什麼不能在'QuizzesController'上使用傳統方法來處理測驗的創建和更新?也許我誤解了你。我以爲你只需要向用戶顯示當前的測驗,以便他/她能夠接受。我想'QuizzesController#current'呈現一個視圖,該視圖具有一個用戶在接受它後提交給'QuizzesController#update'的窗體。我沒有看到,除非您想根據來自當前測驗或其他測驗的信息呈現/重定向到某個地方,否則您不得不特別處理任何事情。 –

+0

取決於。如果我有一個單獨的管理部分,我通常會有一個'Admin :: QuizzesController'。如果沒有管理部分,那麼'QuizzesController'和'CurrentQuizController'(或者其他所謂的)就有一個明確的例子。 –